常見【十種】WEB攻擊及防護技術總結

 

最近參加了一個WEB安全培訓,感受WEB攻擊跟防護都是挺有意思的。如下總結比較簡短,僅供觀賞哈。javascript

 

1、XSS攻擊html

 

  【介紹】java

  xss攻擊是跨站腳本攻擊,例如在表單中提交含有可執行的javascript的內容文本,若是服務器端沒有過濾或轉義這些腳本,而這些腳本由經過內容的形式發佈到了頁面上,這個時候若是有其餘用戶訪問這個網頁,那麼瀏覽器就會執行這些腳本,從而被攻擊,從而獲取用戶的cookie等信息。sql

  【防護】數據庫

  一、對於敏感的cookie信息,使用HttpOnly,使document對象中找不到cookie。瀏覽器

  二、對於用戶輸入的信息要進行轉義。安全

 

2、CSRF攻擊服務器

 

  【介紹】cookie

  CSRF攻擊即跨站域請求僞造,例如,小明在瀏覽銀行A網站的時候並無關掉銀行網站,這時小明又訪問了攜帶CSRF攻擊的B網站,而這時候B網站經過對銀行的服務器發送轉帳請求,而且攜帶小明的在銀行網站的cookie信息,在參數上把小明帳號上的錢轉到B網站全部人的帳戶上,這時url獲得響應,小明的錢就丟了。session

  【防護】

  一、敏感請求使用驗證碼。

  二、驗證HTTP Referer字段。Referer字段記錄了HTTP請求的來源地址,從銀行A網站發出來的請求會帶有A網站的地址,從攜帶CSRF地址發出的請求會攜帶B網站的地址,咱們只需在每一個敏感請求驗證Referer值,若是是來自A網站的經過,不然不經過。可是這種方法把安全寄託於瀏覽器,並不徹底安全,在某些瀏覽器上,仍是能夠經過篡改 Referer 從而進行CSRF攻擊。並且,在某些用戶禁用Referer的狀況下,服務器會一直拒絕客戶的請求。

  三、在請求地址中添加token 並驗證。在用戶登陸以後,產生token 並放入session中,在每次請求時把token從session中拿出來,以參數的形式加入請求,在服務器端創建攔截器驗證該token,token則經過,不然拒絕。可是這種方法也是有安全問題的,在某些網站支持用戶發表連接的,那麼黑客在該網站發佈本身的我的網站地址,系統也會爲這個地址後加上token,則黑客能夠在本身的網站上獲得這個token參數,從而發動CSRF攻擊。

  四、在HTTP頭中自定義屬性token 並驗證。把token做爲自定義屬性放在HTTP的頭中,經過封裝XMLHttpRequest能夠一次性給全部請求加上token 屬性。這樣子token就不會暴露在瀏覽器地址中。

 

3、SQL注入

 

  【介紹】

  SQL注入攻擊,攻擊者在提交表單的時候,在表單上面填寫相關的sql語句,而系統把這些字段當成普通的變量發送給服務器端進行sql查詢,則,由攻擊者填寫的sql會拼接在系統的sql語句上,從而進行數據庫的某些操做。

 

  例如在簡單的登錄表單裏面

  

<form action="/login" method="POST">
    Username: <input type="text" name="username" />
    Password: <input type="password" name="password" />
    <input type="submit" value="登錄" />
</form>

  

  這時候系統處理的sql語句是這樣

 

username:=r.Form.Get("username")
password:=r.Form.Get("password")
sql:="SELECT * FROM user WHERE username='"+username+"' AND password='"+password+"'"

  

  而這時候攻擊者輸入的用戶名以下,密碼爲任意值的狀況下

 

myuser' or 'foo' = 'foo' --

 

  那麼系統的sql語句就會變成這樣

 

SELECT * FROM user WHERE username='myuser' or 'foo' = 'foo' --'' AND password='xxx'

  

  則攻擊者就會成功登錄

  【防護】

  一、表單過濾,驗證表單提交的合法性,對一些特殊字符進行轉義處理

  二、數據庫權限最小化

  三、查詢語句使用數據庫提供的參數化查詢接口,不要直接拼接SQL

 

4、身份認證和會話

 

  【攻擊】

  黑客在瀏覽器中停用JS,防止客戶端校驗,從而進行某些操做。

  【防護】

  一、隱藏敏感信息。

  二、對敏感信息進行加密。

  三、session 按期失效

 

5、權限與訪問控制

 

  【攻擊】

  能經過URL參數的修改達到訪問他人頁面,例如,黑客可以使用一下的連接去訪問在某商城上本身的訂單連接

 

https://***.***.com/normal/item.action?orderid=51338221644

 

  這個時候若是網站沒有相關權限驗證,那麼他也能經過下面的連接去訪問其餘人的訂單。

 

https://***.***.com/normal/item.action?orderid=其餘id

 

  這樣子就會形成商城其餘人的隱私的泄露。

 

  【防護】

  一、添加權限系統,訪問的時候能夠加上相應的校驗。

 

6、不安全加密存儲

 

  【防護】

  一、加密存儲敏感信息

  二、不用md5加密

 

7、上傳漏洞

 

  【攻擊】

  在圖片上傳的時候,攻擊者上傳非圖片,而是可遠程執行的的腳本,這時候,入侵者就能夠遠程的執行腳原本對服務器進行攻擊

  【防護】

  一、限制文件上傳類型

  二、使用第三方文件託管等

 

8、傳輸層未加密

 

  【防護】

  一、使用安全的https版本

  二、敏感信息使用https傳輸

  三、非敏感信息使用http傳輸

 

9、未驗證的重定向和轉發

 

  【攻擊】

  用於釣魚,黑客在存在漏洞的網址後添加跳轉參數,而且把參數轉碼,把連接發送給用戶,誘導用戶點擊,這時候用戶看到連接的最前面是熟悉的網址,會點擊進去,從而是用戶的點擊發生重定向到非法網站。

  【防護】

  一、添加跳轉白名單

  二、跳轉前提示用戶即將發生跳轉到其餘可疑網頁。

 

10、WebShell

 

  【攻擊】

  黑客在win系統中向被攻擊網站上傳  abc.asp;.jsp文件,這時候系統識別爲jsp文件,而後傳送到服務器的時候,某些系統上面會識別爲 asp 文件。

 

  轉載請註明出處: http://www.cnblogs.com/Miss-mickey/p/6636813.html 

相關文章
相關標籤/搜索