常見的 PHP 安全性攻擊

SQL注入:用戶利用在表單字段輸入SQL語句的方式來影響正常的SQL執行。
防止:使用mysql_real_escape_string()過濾數據 手動檢查每一數據是否爲正確的數據類型 使用預處理語句並綁定變量 參數化SQL:是指在設計與數據庫鏈接並訪問數據時,在需要填入數值或數據的地方,使用參數 (Parameter) 來給值,用@或?來表示參數。


XSS攻擊 :跨站點腳本攻擊,由用戶輸入一些數據到你的網站,其中包括客戶端腳本(通常JavaScript)。如果你沒有過濾就輸出數據到另一個web頁面,這個腳本將被執行。
防止:爲了防止XSS攻擊,使用PHP的htmlentities()函數過濾再輸出到瀏覽器。


CSRF:跨站點請求僞造,是指一個頁面發出的請求,看起來就像是網站的信任用戶,但是是僞造的
防止:一般來說,確保用戶來自你的表單,並且匹配每一個你發送出去的表單。有兩點一定要記住:對用戶會話採用適當的安全措施,例如:給每一個會話更新id和用戶使用SSL。生成另一個一次性的令牌並將其嵌入表單,保存在會話中(一個會話變量),在提交時檢查它。如laravel中的 _token


代碼注入:代碼注入是利用計算機漏洞通過處理無效數據造成的。問題出在,當你不小心執行任意代碼,通常通過文件包含。寫得很糟糕的代碼可以允許一個遠程文件包含並執行。如許多PHP函數,如require可以包含URL或文件名。
防止代碼注入 過濾用戶輸入 在php.ini中設置禁用allow_url_fopen和allow_url_include。這將禁用require/include/fopen的遠程文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章