有關於各類網絡攻擊

sql注入,xss攻擊,csrf攻擊,文件上傳漏洞,訪問控制。這些是通常網站容易發生的攻擊方式,接下來咱們一一分析它們是如何攻擊以及防範的。php

 

1、sql注入html

 

<1>什麼是sql注入?前端

 

        sql注入說的通俗一些就是用戶在http請求中注入而已的代碼,致使服務器使用數據庫sql命令時,致使惡意sql一塊兒被執行。mysql

 

用戶登陸,輸入用戶名 zhangsan,密碼 ‘ or ‘1’=’1 ,若是此時使用參數構造的方式,就會出現sql

 

 
 
  1. select * from usershell

   where name = 'zhangsan'    and password = '' or '1'='1'數據庫

 

 

 這樣zhangsan用戶沒有密碼也能夠被登錄,若是用戶注入的是操做表的sql,就有大麻煩了。後端

 

<2>怎麼防範sql注入?瀏覽器

 

1.不用拼接 SQL 字符串安全

 

 2. 有效性檢驗。(前端後端都須要。第一準則,外部都是不可信的,防止攻擊者繞過Web端請求)

 

 3過濾 SQL 須要的參數中的特殊字符。好比單引號、雙引號。推薦幾個函數mysql_real_escape_string()  addslashes()htmlentities() htmlspecialchars() strip_tags()  intval()

 

  4.限制字符串輸入的長度。

 

2、xss攻擊

 

<1>什麼是xss攻擊

 

       跨站點腳本攻擊,指攻擊者經過篡改網頁,嵌入惡意腳本程序,在用戶瀏覽網頁時,控制用戶瀏覽器進行惡意操做的一種攻擊方式。

 

假設頁面上有一個表單:

 

 
 
  1. <input  type="text" name="name" value="lisi"/>

 

若是,用戶輸入的不是一個正常的字符串,而是

 

 
 
  1. "/><script>alert("haha")</script><!-

 

此時,頁面變成下面的內容,在輸入框input的後面帶上了一段腳本代碼。

 

 

 
 
  1. <input  type="text" name="name" value="梁桂釗"/><script>alert("haha")</script><!-"/>

 

      這端腳本程序只是彈出一個消息框,並不會形成什麼危害,攻擊的威力取決於用戶輸入了什麼樣的腳本,只要稍微修改,即可使攻擊極具攻擊性。常見的就是用戶通常在評論中或者反饋中使用xss。

 

 

<2>如何防範xss

 

同sql注入同樣。能夠限制輸入字符串的長度,對HTML轉義處理。將其中的」<」,」>」等特殊字符進行轉義編碼。

 

3、csrf攻擊

 

<1>什麼是csrf攻擊

 

      跨站點請求僞造,指攻擊者經過跨站請求,以合法的用戶的身份進行非法操做。能夠這麼理解CSRF攻擊:攻擊者盜用你的身份,以你的名義向第三方網站發送惡意請求。CRSF能作的事情包括利用你的身份發郵件,發短信,進行交易轉帳,甚至盜取帳號信息。跨站點請求僞造,指攻擊者經過跨站請求,以合法的用戶的身份進行非法操做。能夠這麼理解CSRF攻擊:攻擊者盜用你的身份,以你的名義向第三方網站發送惡意請求。CRSF能作的事情包括利用你的身份發郵件,發短信,進行交易轉帳,甚至盜取帳號信息。

 

<2>怎麼防止csrf

 

1.  安全框架使用。好比yii lavarel等。

2.  token機制。在HTTP請求中進行token驗證,若是請求中沒有token或者token內容不正確,則認爲CSRF攻擊而拒絕該請求。

3. 驗證碼。一般狀況下,驗證碼可以很好的遏制CSRF攻擊,可是不少狀況下,出於用戶體驗考慮,驗證碼只能做爲一種輔助手段,而不是最主要的解決方案。

4.   referer識別。在HTTP Header中有一個字段Referer,它記錄了HTTP請求的來源地址。若是Referer是其餘網站,就有多是CSRF攻擊,則拒絕該請求。可是,服務器並不是都能取到Referer。不少用戶出於隱私保護的考慮,限制了Referer的發送。在某些狀況下,瀏覽器也不會發送Referer,例如HTTPS跳轉到HTTP。

 

4、文件上傳漏洞

 

<1>什麼是文件上傳漏洞

 

       文件上傳漏洞,指的是用戶上傳一個可執行的腳本文件,並經過此腳本文件得到了執行服務端命令的能力。好比用戶上傳一個能夠關機的執行文件,你的損失就大發了。

 

<2>如何防範

 

1. 文件上傳的目錄設置爲不可執行。

2. 判斷文件類型。在判斷文件類型的時候,能夠結合使用MIME Type,後綴檢查等方式。由於對於上傳文件,不能簡單地經過後綴名稱來判斷文件的類型,由於攻擊者能夠將可執行文件的後綴名稱改成圖片或其餘後綴類型,誘導用戶執行。

3. 對上傳的文件類型進行白名單校驗,只容許上傳可靠類型。

4. 上傳的文件須要進行從新命名,使攻擊者沒法猜測上傳文件的訪問路徑,將極大地增長攻擊成本,同時向shell.php.rar.ara這種文件,由於重命名而沒法成功實施攻擊。

5. 限制上傳文件的大小。

6. 單獨設置文件服務器的域名。

相關文章
相關標籤/搜索