-
1 # 西街三水哥
-
2 # 新生活達人
方法有很多,網上的參考例子也比較多,建議從以下幾個方面進行:
一、使用好的php框架
例如目前流行的thinkphp等框架等,已經考慮了這些方面問題,直接應用肯定會比自己寫的程式碼防注入性要強一些,畢竟每個人的水平參差不齊,總有遺漏的地方。
二、每個頁面對輸入的值進行過濾和校驗
這個工作量會比較大,就是驗證一下輸入的值是否符合要求,比如一個數字引數,傳了一些古怪字元進來,都是要過濾的。php裡面也有引數設定對get,post值進行處理,去掉分隔符等。
三、伺服器託管
最好選擇如騰訊雲,阿里雲這些伺服器,相對比自己去其他小機房託管,本身就可以幫阻止一些不必要的攻擊了。
四、伺服器執行許可權
這裡有2個地方:
1、設定使用非root使用者來執行你的php,防止php擁有太多的執行伺服器指令的機會。
2、對於php中,能夠上傳檔案的php程式,以及上傳的檔案,要進行專門驗證,不要讓別人有利用這個入口上傳木馬後臺程式的機會。
五、掃描工具
上傳程式到伺服器以後,可以用例如360的漏洞掃描工具,掃描一下網站,看看有沒有明顯的漏洞。
希望以上思路可以對大家有所參考和幫助!
-------------------------------------------
-
3 # 佛系程式設計師
這個問題感覺對一個多年開發人員來說應該還是比較有資格回答的,畢竟錄製過sql注入以及防禦的課程。
搞明白sql注入
注入攻擊漏洞例如SQL,OS以及LDAP注入。這些攻擊發生在當不可信的資料作為命令或者查詢語句的一部分,被髮送給直譯器的時候。攻擊者傳送的惡意資料可以欺騙直譯器,以執行計劃外的命令或者在未被恰當授權時訪問資料。
然後給大家看看經常會引起sql注入的sql語句
1"or 1=1 #
2"or 1=1 --(空格)
3union all select 1,2,3 #
4username=‘ UNION SELECT 1,version(),3 #(版本)
5username=‘ UNION SELECT 1,user(),3 #(使用者)
然後再給大家介紹一下sql注入的一個工具是sqlmap
最後給大家兩點建議
1 使用預處理語句PDO
2 對引數進行轉義(addslashes/mysql_real_escape_string)
當然了大家如果想具體學習sql的攻擊原理以及,sql的防禦。和sqlmap的使用可以私聊我哦
回覆列表
防sql注入有很多方式,第一種是前端過濾!利用js來防止sql注入!
第二後端防止,利用函式將接收的資料進行過濾新增雙引號!還有將註釋等符號進行反斜槓處理!
第三利用php預處理可以有效防止sql注入!