PHP 安全性攻擊

一、SQL注入php

SQL注入是一種惡意攻擊,用戶利用在表單字段輸入SQL語句的方式來影響正常的SQL執行。還有一種是經過system()或exec()命令注入的,它具備相同的SQL注入機制,但只針對shell命令。html

防止SQL注入 mysql

  使用mysql_real_escape_string()過濾數據web

  手動檢查每一數據是否爲正確的數據類型sql

  使用預處理語句並綁定變量shell

  使用準備好的預處理語句瀏覽器

  分離數據和SQL邏輯安全

  預處理語句將自動過濾服務器

二、XSS攻擊cookie

  XSS(跨站點腳本攻擊)是一種攻擊,由用戶輸入一些數據到你的網站,其中包括客戶端腳本(一般JavaScript)。若是你沒有過濾就輸出數據到另外一個web頁面,這個腳本將被執行。

     致使

  煩人的彈窗

  刷新或重定向

  損壞網頁或表單

  竊取cookie

  AJAX

防止XSS攻擊,使用PHP的htmlentities()函數過濾再輸出到瀏覽器

三、會話捕獲和劫持

若是會話ID存儲在Cookie中,攻擊者能夠經過XSS和JavaScript竊取。若是會話ID包含在URL上,也能夠經過嗅探或者從代理服務器那得到。

防止會話捕獲和劫持

  更新ID

  使用會話,請確保用戶使用SSL

四、跨站點請求僞造(CSRF)

  CSRF攻擊,是指一個頁面發出的請求,看起來就像是網站的信任用戶,但不是故意的

防止跨站點請求僞造

  確保用戶來自你的表單,而且匹配每個你發送出去的表單。主要有兩點:

  對用戶會話採用適當的安全措施,例如:給每個會話更新id和用戶使用SSL。

  生成另外一個一次性的令牌並將其嵌入表單,保存在會話中(一個會話變量),在提交時檢查它。

五、代碼注入

 防止代碼注入

   過濾用戶輸入

  在php.ini中設置禁用allow_url_fopen和allow_url_include。這將禁用require/include/fopen的遠程文件。

相關文章
相關標籤/搜索