1. 程式人生 > >sql注入和跨站指令碼攻擊等

sql注入和跨站指令碼攻擊等

網站Web攻擊,主要有:sql注入,css攻擊,跨站指令碼攻擊,掛馬,緩衝區溢位等。

        1.  sql注入:即通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的SQL命令,比如先前的很多影視網站洩露VIP會員密碼大多就是通過WEB表單遞交查詢字元暴出的,這類表單特別容易受到SQL注入式攻擊

       2. CSS攻擊:通過在URL裡插入script標籤,然後 誘導信任它們的使用者點選它們,確保惡意Javascript程式碼在受害人的機器上執行。這些攻擊利用了使用者和伺服器之間的信任關係,事實上伺服器沒有對輸入、輸出進行檢測,從而未拒絕javascript程式碼。

        3. 跨站指令碼攻擊(也稱為XSS):指利用網站漏洞從使用者那裡惡意盜取資訊。使用者在瀏覽網站、使用即時通訊軟體、甚至在閱讀電子郵件時,通常會點選其中的連結。攻擊者通過在連結中插入惡意程式碼,就能夠盜取使用者資訊。

        4. 網頁掛馬:把一個木馬程式上傳到一個網站裡面然後用木馬生成器生一個網馬,再上到空間裡面,再加程式碼使得木馬在開啟網頁裡執行。

        5. 緩衝區溢位:由於TCP/IP的設計是沒有考慮安全問題的,這使得在網路上傳輸的資料是沒有任何安全防護的。攻擊者可以利用系統漏洞造成系統程序緩衝區溢位

解決方案:

1.  在 防止sql注入的時候經常會使用sql 引數化 或者是 過濾掉一些非法關鍵字。如果採用的是過濾一些非法關鍵字  如下:

        "and|exec|insert|select|delete|update|count|chr|mid|master|truncate|char|declare|script|script|object|-|@|&|;|$|%|'|\\|+|       <|>|CR|LF|,";  這些關鍵字。其中 and 這個關鍵字 可能在英文版本的專案中會在普通的內容中出現 這個詞。如果過濾掉了 內容就不對了。  還有 中劃線 “-”  因為 在sql 中 兩個中劃線 在一起表示註釋。

2.(SQL注入就是引數化查詢,指令碼去掉大小括號)

3. 跨站指令碼攻擊:  除了顯示輸出內容的時候先進行編碼以外還有什麼其他更好的方法麼。如果是過濾關鍵字和一些特殊字元的話 總感覺不是很好。 如果是一些內容資訊 本來可能需要在裡面進行一些樣式 設定。有可能會把這些樣式都過濾掉。