SQL注入和XSS攻擊

SQL注入:
所謂SQL注入,就是通過把SQL命令插入到提交的Web表單或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令,導致數據庫中的信息泄露或者更改。
防範:
1.永遠不要信任用戶的輸入,將用戶輸入的數據當做一個參數處理:
使用參數化的形式,也就是將用戶輸入的東西以一個參數的形式執行,而不是將用戶的輸入直接嵌入到SQL語句中,用戶輸入就被限於一個參數。
2.避免提示詳細的錯誤信息:
當用戶輸入錯誤的時候,避免提示一些詳細的錯誤信息,因爲黑客們可以利用這些消息,使用一種標準的輸入確認機制來驗證所有的輸入數據的長度、類型、語句、企業規則等。
3. 加密處理:
將用戶登錄名稱、密碼等數據加密保存。加密用戶輸入的數據,然後再將它與數據庫中保存的數據比較,這相當於對用戶輸入的數據進行了“消毒”處理,用戶輸入的數據不再對數據庫有任何特殊的意義,從而也就防止了攻擊者注入SQL命令。
4.確保數據庫安全: 
鎖定你的數據庫的安全,只給訪問數據庫的web應用功能所需的最低的權限,撤銷不必要的公共許可,如果web應用不需要訪問某些表,那麼確認它沒有訪問這些表的權限。如果web應用只需要只讀的權限,那麼就禁止它對此表的 drop 、insert、update、delete 的權限,並確保數據庫打了最新補丁。

##################################################################

XSS攻擊(Cross Site Scripting), 中文名爲跨站腳本攻擊,指的是將xss代碼植入到提供給其它用戶使用的頁面中,從而達到盜取用戶信息和做一些違法操作,比如這些代碼包括HTML代碼和客戶端腳本:
是發生在目標用戶的瀏覽器層面上的,當渲染DOM樹的過程成發生了不在預期內執行的JS代碼時,就發生了XSS攻擊。
跨站腳本的重點不在‘跨站’上,而在於‘腳本’上。大多數XSS攻擊的主要方式是嵌入一段遠程或者第三方域上的JS代碼。實際上是在目標網站的作用域下執行了這段js代碼。
1.一旦在DOM解析過程成出現不在預期內的改變(JS代碼執行或樣式大量變化時),就可能發生XSS攻擊
2.XSS分爲反射型XSS,存儲型XSS和DOM XSS
3.反射型XSS是在將XSS代碼放在URL中,將參數提交到服務器。服務器解析後響應,在響應結果中存在XSS代碼,最終通過瀏覽器解析執行。
4.存儲型XSS是將XSS代碼存儲到服務端(數據庫、內存、文件系統等),在下次請求同一個頁面時就不需要帶上XSS代碼了,而是從服務器讀取。最典型的就是留言板XSS。用戶提交了一條包含XSS代碼的留言到數據庫。當目標用戶查詢留言時,那些留言的內容會從服務器解析之後加載出來。瀏覽器發現有XSS代碼,就當做正常的HTML和JS解析執行。XSS攻擊就發生了。
5.DOM XSS攻擊不同於反射型XSS和存儲型XSS,DOM XSS代碼不需要服務器端的解析響應的直接參與,而是通過瀏覽器端的DOM解析。這完全是客戶端的事情。DOM XSS代碼的攻擊發生的可能在於我們編寫JS代碼造成的。我們知道eval語句有一個作用是將一段字符串轉換爲真正的JS語句,因此在JS中使用eval是很危險的事情,容易造成XSS攻擊。避免使用eval語句

XSS的危害:
1.XSS危害有通過document.cookie盜取用戶cookie
2.通過JS或CSS改變樣式
3.流量劫持(通過訪問某段具有window.location.href定位到其他頁面)
4.Dos攻擊:利用合理的客戶端請求來佔用過多的服務器資源,從而使合法用戶無法得到服務器響應。
5.利用iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻擊)用戶的身份執行一些管理動作,或執行一些一般的如發微博、加好友、發私信等操作。
6.利用可被攻擊的域受到其他域信任的特點,以受信任來源的身份請求一些平時不允許的操作,如進行不當的投票活動。

XSS的預防:
1.過濾危險的DOM節點。如具有執行腳本能力的script, 具有顯示廣告和色情圖片的img, 具有改變樣式的link, style, 具有內嵌頁面的iframe, frame等元素節點。
2.過濾危險的屬性節點。如事件, style, src, href等
3.對cookie設置httpOnly,對重要的cookie設置httpOnly,防止客戶端通過document.cookie讀取cookie。服務端可以設置此字段
5.對用戶輸入數據的處理,1.編碼:不能對用戶輸入的內容都保持原樣,對用戶輸入的數據進行字符實體編碼 2.解碼:原樣顯示內容的時候必須解碼,不然顯示不到內容了。3.過濾:把輸入的一些不合法的東西都過濾掉,從而保證安全性。如移除用戶上傳的DOM屬性,如onerror,移除用戶上傳的Style節點,iframe, script節點等。

受到xss攻擊的網站事例:
1. 2011年6月新浪微博出現了一次比較大的XSS攻擊事件。大量用戶自動發送一些信息並關注一位名爲hellosamy的用戶,一個小時完成修復
2. 百度貼吧xss攻擊事件
2014年3月六安吧等幾十個貼吧中帖子不斷轉發,病毒循環發帖。並且導致吧務人員,和吧友被封禁

 

參考鏈接:
https://www.cnblogs.com/unclekeith/p/7750681.html

 

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