校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > PHP如何防止XSS攻擊與XSS攻擊原理的講解

PHP如何防止XSS攻擊與XSS攻擊原理的講解

熱門標簽:阿里云400電話申請加工單 西區企業怎么做地圖標注入駐 智能電話機器人排名前十名南京 抖音有個地圖標注是什么意思 地下城堡2圖九地圖標注 海南人工外呼系統有效果嗎 七魚外呼系統停用嗎 九江外呼系統 保定crm外呼系統運營商

XSS又稱CSS,全稱Cross SiteScript(跨站腳本攻擊), XSS攻擊類似于SQL注入攻擊,是Web程序中常見的漏洞,XSS屬于被動式且用于客戶端的攻擊方式,所以容易被忽略其危害性。其原理是攻擊者向有XSS漏洞的網站中輸入(傳入)惡意的HTML代碼,當用戶瀏覽該網站時,這段HTML代碼會自動執行,從而達到攻擊的目的。如,盜取用戶Cookie信息、破壞頁面結構、重定向到其它網站等。

理論上,只要存在能提供輸入的表單并且沒做安全過濾或過濾不徹底,都有可能存在XSS漏洞。

下面是一些最簡單并且比較常見的惡意字符XSS輸入:

1.XSS 輸入通常包含 JavaScript 腳本,如彈出惡意警告框:script>alert("XSS");/script>

2.XSS 輸入也可能是 HTML 代碼段,譬如:

  • (1).網頁不停地刷新 meta http-equiv="refresh" content="0;">
  • (2).嵌入其它網站的鏈接 iframe src=http://xxxx width=250 height=250>/iframe>

除了通過正常途徑輸入XSS攻擊字符外,還可以繞過JavaScript校驗,通過修改請求達到XSS攻擊的目的,如下圖:

了解到XSS攻擊的原理和危害后,其實要預防也不難,下面提供一個簡單的PHP防止XSS攻擊的函數:

?PHP
/**
 * @param $string
 * @param $low 安全別級低
 */
function clean_xss($string, $low = False)
{
 if (! is_array ( $string ))
 {
 $string = trim ( $string );
 $string = strip_tags ( $string );
 $string = htmlspecialchars ( $string );
 if ($low)
 {
  return True;
 }
 $string = str_replace ( array ('"', "\\", "'", "/", "..", "../", "./", "http://" ), '', $string );
 $no = '/%0[0-8bcef]/';
 $string = preg_replace ( $no, '', $string );
 $no = '/%1[0-9a-f]/';
 $string = preg_replace ( $no, '', $string );
 $no = '/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]+/S';
 $string = preg_replace ( $no, '', $string );
 return True;
 }
 $keys = array_keys ( $string );
 foreach ( $keys as $key )
 {
 clean_xss ( $string [$key] );
 }
}
//just a test
$str = 'codetc.commeta http-equiv="refresh" content="0;">';
clean_xss($str); //如果你把這個注釋掉,你就知道xss攻擊的厲害了
echo $str;
?>

PHP中的設置

PHP5.2以上版本已支持HttpOnly參數的設置,同樣也支持全局的HttpOnly的設置,在php.ini中

-----------------------------------------------------
session.cookie_httponly = 
-----------------------------------------------------

設置其值為1或者TRUE,來開啟全局的Cookie的HttpOnly屬性,當然也支持在代碼中來開啟:

?php ini_set("session.cookie_httponly", 1);  
// or session_set_cookie_params(0, NULL, NULL, NULL, TRUE);  
?>

Cookie操作函數setcookie函數和setrawcookie函數也專門添加了第7個參數來做為HttpOnly的選項,開啟方法為:

?php 
setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE);  
setrawcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE); 
?>

老版本的PHP就不說了。沒企業用了吧。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

您可能感興趣的文章:
  • JWT + ASP.NET MVC時間戳防止重放攻擊詳解
  • .NET添加時間戳防止重放攻擊
  • PHP中防止SQL注入攻擊和XSS攻擊的兩個簡單方法
  • php防止CC攻擊代碼 php防止網頁頻繁刷新
  • php防止sql注入示例分析和幾種常見攻擊正則表達式
  • php實現cc攻擊防御和防止快速刷新頁面示例
  • php防止網站被攻擊的應急代碼
  • PHP中通過語義URL防止網站被攻擊的方法分享
  • PHP實現的防止跨站和xss攻擊代碼【來自阿里云】
  • 淺析PHP程序防止ddos,dns,集群服務器攻擊的解決辦法
  • PHP防止注入攻擊實例分析
  • PHP基于timestamp和nonce實現的防止重放攻擊方案分析

標簽:遼陽 涼山 十堰 甘肅 韶關 梅河口 昭通 九江

巨人網絡通訊聲明:本文標題《PHP如何防止XSS攻擊與XSS攻擊原理的講解》,本文關鍵詞  PHP,如何,防止,XSS,攻擊,與,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP如何防止XSS攻擊與XSS攻擊原理的講解》相關的同類信息!
  • 本頁收集關于PHP如何防止XSS攻擊與XSS攻擊原理的講解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 民勤县| 兴山县| 天峻县| 阿克苏市| 甘孜县| 福海县| 谢通门县| 石嘴山市| 乃东县| 措美县| 龙州县| 威宁| 德安县| 榕江县| 得荣县| 邓州市| 屏南县| 鲁山县| 公主岭市| 青冈县| 习水县| 襄汾县| 神农架林区| 乾安县| 临猗县| 招远市| 北安市| 杭州市| 元谋县| 九龙县| 兴仁县| 金溪县| 永新县| 赤峰市| 双柏县| 石阡县| 如东县| 天祝| 寿阳县| 沁源县| 临沭县|