關於在php中防範xss的信息

本文目錄一覽:

如何正確防禦xss攻擊

傳統防禦技術

2.1.1基於特徵的防禦

傳統XSS防禦多採用特徵匹配方式,在所有提交的信息中都進行匹配檢查。對於這種類型的XSS攻擊,採用的模式匹配方法一般會需要對“javascript”這個關鍵字進行檢索,一旦發現提交信息中包含“javascript”,就認定為XSS攻擊。

2.1.2 基於代碼修改的防禦

和SQL注入防禦一樣,XSS攻擊也是利用了Web頁面的編寫疏忽,所以還有一種方法就是從Web應用開發的角度來避免:

1、對所有用戶提交內容進行可靠的輸入驗證,包括對URL、查詢關鍵字、HTTP頭、POST數據等,僅接受指定長度範圍內、採用適當格式、採用所預期的字符的內容提交,對其他的一律過濾。

2、實現Session標記(session tokens)、CAPTCHA系統或者HTTP引用頭檢查,以防功能被第三方網站所執行。

3、確認接收的的內容被妥善的規範化,僅包含最小的、安全的Tag(沒有javascript),去掉任何對遠程內容的引用(尤其是樣式表和javascript),使用HTTP only的cookie。

當然,如上方法將會降低Web業務系統的可用性,用戶僅能輸入少量的制定字符,人與系統間的交互被降到極致,僅適用於信息發布型站點。

並且考慮到很少有Web編碼人員受過正規的安全培訓,很難做到完全避免頁面中的XSS漏洞。

擴展資料:

XSS攻擊的危害包括

1、盜取各類用戶帳號,如機器登錄帳號、用戶網銀帳號、各類管理員帳號

2、控制企業數據,包括讀取、篡改、添加、刪除企業敏感數據的能力

3、盜竊企業重要的具有商業價值的資料

4、非法轉賬

5、強制發送電子郵件

6、網站掛馬

7、控制受害者機器向其它網站發起攻擊

受攻擊事件

新浪微博XSS受攻擊事件

2011年6月28日晚,新浪微博出現了一次比較大的XSS攻擊事件。

大量用戶自動發送諸如:

“郭美美事件的一些未注意到的細節”,“建黨大業中穿幫地方”,“讓女人心動的100句詩歌”,“這是傳說中的神仙眷侶啊”等等微博和私信,並自動關注一位名為hellosamy的用戶。

事件的經過線索如下:

20:14,開始有大量帶V的認證用戶中招轉發蠕蟲

20:30,某網站中的病毒頁面無法訪問

20:32,新浪微博中hellosamy用戶無法訪問

21:02,新浪漏洞修補完畢

百度貼吧xss攻擊事件

2014年3月9晚,六安吧等幾十個貼吧出現點擊推廣貼會自動轉發等。並且吧友所關注的每個關注的貼吧都會轉一遍,病毒循環發帖。並且導致吧務人員,和吧友被封禁。

參考資料:

XSS攻擊-百度百科

php防止sql注入以及xss跨站腳本攻擊

1.post數據

封裝轉義函數 防sql注入  eag:addslashes($username);addslashes($password); 

eag:防止sql注入函數封裝 

function deepslashes($data){

#判斷$data的表現形式 並且需要處理空的情況

if(empty($data)){

return($data);

}

#高級簡寫 return is_array($data) ? array_map(‘deepslashes’,$data) : addslashes($data);

#初級寫法

if(is_array($data)){

#遞歸循環遍歷處理多維數組

foreach ($data as $v) {

return deepslashes($v);

}

}else{

#單一變量

return addslashes($data);

}

#初級寫法

}

2.get數據

指url 傳參數導致sql發生改變

解決方案

①強制轉換,使用函數intval 或者 數據類型 的關鍵字int

②隱式轉換,通過運算,只需要+0即可

3.xss跨站腳本攻擊

指惡意攻擊向web頁面插入html、js標籤導致頁面出現錯誤

解決方案

轉義標籤” ”即可,有以下php函數可解決

htmlspecialchars 函數 和 htmlentites函數

eag:

function deepslashes($data){

#判斷$data的表現形式 並且需要處理空的情況

if(empty($data)){

return($data);

}

return is_array($data) ? array_map(‘deepslashes’,$data) : htmlspecialchars ($data);

}

如何正確防禦xss攻擊?

1、基於特徵的防禦。XSS漏洞和著名的SQL注入漏洞一樣,都是利用了Web頁面的編寫不完善,所以每一個漏洞所利用和針對的弱點都不盡相同,這就是給XSS漏洞防禦帶來的困難,不可能以單一特徵來概括所有XSS攻擊。

傳統的XSS防禦在進行攻擊鑒別時多採用特徵匹配方式,主要是針對JavaScript這個關鍵詞進行檢索,但是這種鑒別不夠靈活,凡是提交的信息中各有JavaScript時,就被硬性的判定為XSS攻擊。

2、基於代碼修改的防禦。Web頁面開發者在編寫程序時往往會出現一些失誤或漏洞,XSS攻擊正是利用了失誤和漏洞,因此一種比較理想的方法就是通過優化Web應用開發來減少漏洞,避免被攻擊:

①用戶向服務器上提交的信息要對URL和附帶的HTTP頭、POST數據等進行查詢,對不是規定格式、長度的內容進行過濾。

②實現Session標記、CAPTCHA系統或者HTTP引用頭檢查,以防功能被第三方網站所執行。

③確認接收的內容被妥善的規範化,僅包含最小的、安全的Tag,去掉任何對遠程內容的引用,使用HTTP only的cookie。

3、客戶端分層防禦策略。客戶端跨站腳本攻擊的分層防禦策略是基於獨立分配線程和分層防禦策略的安全模型。它建立在客戶端,這是它與其他模型最大的區別。之所以客戶端安全性如此重要,客戶端在接受服務器信息,選擇性的執行相關內容。這樣就可以使防禦XSS攻擊變得容易,該模型主要由三大部分組成:

①對每一個網頁分配獨立線程且分析資源消耗的網頁線程分析模塊;

②包含分層防禦策略四個規則的用戶輸入分析模塊;

③保存互聯網上有關XSS惡意網站信息的XSS信息數據庫。

求教ThinkPHP 有自帶的防止XSS的代碼么

你好,據我所知,ThinkPHP並沒有自帶的防止XSS的代碼.不過,在PHP上,要想防止XSS,其實很簡單,只需要調用一個函數即可:htmlspecialchars()

在你的要求輸入字符的位置,調用htmlspecialchars()函數即可.

希望我的回答能夠對你有所幫助.

xss漏洞如何防禦?

1、基於特徵的防禦。XSS漏洞和著名的SQL注入漏洞一樣,都是利用了Web頁面的編寫不完善,所以每一個漏洞所利用和針對的弱點都不盡相同,這就是給XSS漏洞防禦帶來的困難,不可能以單一特徵來概括所有XSS攻擊。

傳統的XSS防禦在進行攻擊鑒別時多採用特徵匹配方式,主要是針對JavaScript這個關鍵詞進行檢索,但是這種鑒別不夠靈活,凡是提交的信息中各有JavaScript時,就被硬性的判定為XSS攻擊。

2、基於代碼修改的防禦。Web頁面開發者在編寫程序時往往會出現一些失誤或漏洞,XSS攻擊正是利用了失誤和漏洞,因此一種比較理想的方法就是通過優化Web應用開發來減少漏洞,避免被攻擊:

①用戶向服務器上提交的信息要對URL和附帶的HTTP頭、POST數據等進行查詢,對不是規定格式、長度的內容進行過濾。

②實現Session標記、CAPTCHA系統或者HTTP引用頭檢查,以防功能被第三方網站所執行。

③確認接收的內容被妥善的規範化,僅包含最小的、安全的Tag,去掉任何對遠程內容的引用,使用HTTP only的cookie。

3、客戶端分層防禦策略。客戶端跨站腳本攻擊的分層防禦策略是基於獨立分配線程和分層防禦策略的安全模型。它建立在客戶端,這是它與其他模型最大的區別。之所以客戶端安全性如此重要,客戶端在接受服務器信息,選擇性的執行相關內容。這樣就可以使防禦XSS攻擊變得容易,該模型主要由三大部分組成:

①對每一個網頁分配獨立線程且分析資源消耗的網頁線程分析模塊;

②包含分層防禦策略四個規則的用戶輸入分析模塊;

③保存互聯網上有關XSS惡意網站信息的XSS信息數據庫。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/238617.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:12
下一篇 2024-12-12 12:12

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • Java 監控接口返回信息報錯信息怎麼處理

    本文將從多個方面對 Java 監控接口返回信息報錯信息的處理方法進行詳細的闡述,其中包括如何捕獲異常、如何使用日誌輸出錯誤信息、以及如何通過異常處理機制解決報錯問題等等。以下是詳細…

    編程 2025-04-29
  • 使用Python爬蟲獲取電影信息的實現方法

    本文將介紹如何使用Python編寫爬蟲程序,來獲取和處理電影數據。需要了解基本的Python編程語言知識,並使用BeautifulSoup庫和Requests庫進行爬取。 一、準備…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • Python爬取網頁信息

    本文將從多個方面對Python爬取網頁信息做詳細的闡述。 一、爬蟲介紹 爬蟲是一種自動化程序,可以模擬人對網頁進行訪問獲取信息的行為。通過編寫代碼,我們可以指定要獲取的信息,將其從…

    編程 2025-04-28
  • 如何使用Python執行Shell命令並獲取執行過程信息

    本文將介紹如何使用Python執行Shell命令並獲取執行過程信息。我們將從以下幾個方面進行闡述: 一、執行Shell命令 Python內置的subprocess模塊可以方便地執行…

    編程 2025-04-28
  • Python實現身份信息模擬生成與查驗

    本文將從以下幾個方面對Python實現身份信息模擬生成與查驗進行詳細闡述: 一、身份信息生成 身份信息生成是指通過代碼生成符合身份信息規範的虛假數據。Python中,我們可以使用f…

    編程 2025-04-27
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • Dapper使用getschema獲取表信息

    本文旨在介紹Dapper中使用getschema獲取表信息的方法和注意事項。 一、獲取某張表的所有列信息 使用Dapper獲取某張表信息,可以使用 `IDbConnection.G…

    編程 2025-04-27

發表回復

登錄後才能評論