亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

PHP+MySQL安全方案整理

系統(tǒng) 2238 0

?

看之前牢記一句老話:一切用戶輸入的都是不安全的。


1 不要依賴于服務(wù)器端的magic_quotes,雖然他們默認(rèn)都是打開的(magic_quotes_gpc)

將下面兩個(gè)關(guān)閉
ini_set("magic_quotes_runtime", 0);
ini_set("magic_quotes_sybase", 0);

?? 全部自己手工對(duì)所有變量添加magic_quotes,就是添加addslashes
?? 代碼如下:
?? function stripslashes_deep($value){
? $value = is_array($value) ?
???? array_map('stripslashes_deep', $value) :
???? stripslashes($value);
? return $value;
?? }
???
? function strip_slashes(){
?? // If already slashed, strip.
?? //把原有的slash去掉,重新添加自己的magic_quotes
?? if ( get_magic_quotes_gpc() ) {
???? $_GET??? = stripslashes_deep($_GET?? );
???? $_POST?? = stripslashes_deep($_POST? );
???? $_COOKIE = stripslashes_deep($_COOKIE);
???? $_SERVER = stripslashes_deep($_SERVER);
???? $_REQUEST = stripslashes_deep($_REQUEST);
?? }
?? $_GET??? = add_magic_quotes($_GET?? );
?? $_POST?? = add_magic_quotes($_POST? );
?? $_COOKIE = add_magic_quotes($_COOKIE);
?? $_SERVER = add_magic_quotes($_SERVER);
?? $_REQUEST = add_magic_quotes($_REQUEST);
? }

? strip_slashes();

??
?? 顯示的時(shí)候全部stripslashes還原,雖然這很麻煩,不過如果你有一個(gè)模板引擎,可以在變量賦值的時(shí)候,統(tǒng)一作這個(gè)事情,
?? 例如:?function assign($var, $value = '') {
??if (is_array($var)) {
???foreach ($var as $k => $v) {
????$this->vars[$k] = stripslashes_deep($v);
???}
??} else {
???$this->vars[$var] = stripslashes_deep($value);
??}
?}


? 這樣可以避免' " \ 等符號(hào),下面還會(huì)有說明

2 對(duì)于用戶名這樣的字段,輸入時(shí)候,檢查不允許有空格,而且必須是字母數(shù)字下劃線或劃線這四種,用正則檢查

? 還有諸如結(jié)點(diǎn)名,菜單名,角色名這些不需要用' " \的,一定要在錄入之前就檢查,或者用替換為空

3 所有ID為數(shù)字的變量,必須檢查是否為數(shù)字,并將變量強(qiáng)制轉(zhuǎn)換成數(shù)字
? 如果ID是前面帶0的或者字符型的,可用編碼規(guī)則對(duì)其進(jìn)行檢查,例如全是數(shù)字的正則

4 對(duì)于php的mysql函數(shù),由于天生一次只能執(zhí)行一條語句,即;不會(huì)自動(dòng)斷。所以無法通過追加語句實(shí)現(xiàn)注入,只可能通過將語句插入到變量中來起作用注入,所以對(duì)于delete ,select,update都可能有破壞作用。
例如:delete from tbl_users where user_id = 'admin' 變成 delete from tbl_users where user_id = 'admin or user_id<>'0',即在輸入欄為:admin or user_id<>'0
? 所以對(duì)于變量參數(shù):
? 不該有空格的,空格要去掉
? 該位數(shù)字的,一定要轉(zhuǎn)換成數(shù)字
? 有編碼規(guī)則的,一定要檢查編碼規(guī)則
? 有長度限制的一定要加入長度限制
? 絕對(duì)不會(huì)有注入語句的,就篩查sql關(guān)鍵字
? 將一些危險(xiǎn)字符進(jìn)行替換,例如用“代替",空格用%20代替,特殊字符轉(zhuǎn)成html等等
? 當(dāng)然用addslashes還是有明顯效果的,對(duì)于php來說,要想在變量中插入條件,必須通過'來完成,所以這一招可以徹底斷了所有企圖
?
5 apache,php,mysql不要以系統(tǒng)用戶運(yùn)行

6 連接mysql不要用root

7 系統(tǒng)的所有錯(cuò)誤信息必須關(guān)閉或者屏蔽

8 屏蔽非主流瀏覽器的user-agent

9 記錄所有的sql操作和用戶ip,如果發(fā)現(xiàn)危險(xiǎn)語句,可以立刻屏蔽該IP,例如3天
? 如果是用戶登錄后,有危險(xiǎn)sql注入的語句,直接刪除該用戶,同時(shí)屏蔽IP

10 對(duì)于驗(yàn)證碼要可以采用使用中文,變換字符串樣式,必須點(diǎn)擊彈出等方法

11 如果還是不安全,就要像電子銀行那樣,用U盾和專用控件了



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1784617


PHP+MySQL安全方案整理


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 香蕉久久综合 | 国产亚洲精品色一区 | 日本热久久 | 欧美成 人激情视频 | 97福利在线 | 色综合天天操 | 精品一区二区三区中文 | 青青草论坛 | 99色影院| 欧美激情综合亚洲一二区 | 四虎永久在线 | 黄片毛片一级片 | 操操免费视频 | 欧美国产在线观看 | 亚洲一区二区在线视频 | 精品国产网站 | 久草免费在线视频观看 | 国产伦精品一区二区三区在线观看 | 午夜干b| 国产免费高清视频 | 亚洲高清一区二区三区 | 天天操天天爱天天干 | 久久综合亚洲 | 在线视频福利 | 91精品国产综合久久精品 | 欧美xxxb| 伊人久久中文字幕 | 91aaa免费观看在线观看资源 | 92福利网 | 老司机亚洲精品 | 成人欧美一级毛片免费观看 | 狼人综合伊人 | 久久国产精品岛国搬运工 | 成人午夜性a一级毛片美女 成人午夜性视频欧美成人 成人午夜亚洲影视在线观看 | 欧美激情区| 中文字幕精品一区二区精品 | 亚洲欧美日韩国产vr在线观 | 婷婷色香五月激情综合2020 | 国产成人精品视频一区二区不卡 | 日本手机在线视频 | 久久日本经典片免费看 |