PHP XSS攻擊過濾
https://gist.github.com/ozkanozcan/3378054 老外寫的
function removeXSS($val) {
$val = preg_replace('/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/', '', $val);
$search = 'abcdefghijklmnopqrstuvwxyz';
$search .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$search .= '[email protected]#$%^&*()';
$search .= '~`";:?+/={}[]-_|\'\\';
for ($i = 0; $i < strlen($search); $i++) {
$val = preg_replace('/(&#[xX]0{0,8}'.dechex(ord($search[$i])).';?)/i', $search[$i], $val);
$val = preg_replace('/(�{0,8}'.ord($search[$i]).';?)/', $search[$i], $val);
}
//加了個details主要是<details><details> 標籤用於描述文件或文件某個部分的細節。
$ra1 = Array('details','javascript', 'vbscript', 'expression', 'applet', 'meta', 'xml', 'blink', 'link', 'style', 'script', 'embed', 'object', 'iframe', 'frame', 'frameset', 'ilayer', 'layer', 'bgsound', 'title', 'base');
$ra2 = Array('onabort', 'onactivate', 'onafterprint', 'onafterupdate', 'onbeforeactivate', 'onbeforecopy', 'onbeforecut', 'onbeforedeactivate', 'onbeforeeditfocus', 'onbeforepaste', 'onbeforeprint', 'onbeforeunload', 'onbeforeupdate', 'onblur', 'onbounce',
'oncellchange', 'onchange', 'onclick', 'oncontextmenu', 'oncontrolselect', 'oncopy', 'oncut', 'ondataavailable', 'ondatasetchanged', 'ondatasetcomplete', 'ondblclick', 'ondeactivate', 'ondrag', 'ondragend', 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart',
'ondrop', 'onerror', 'onerrorupdate', 'onfilterchange', 'onfinish', 'onfocus', 'onfocusin', 'onfocusout', 'onhelp', 'onkeydown', 'onkeypress', 'onkeyup', 'onlayoutcomplete', 'onload', 'onlosecapture', 'onmousedown', 'onmouseenter', 'onmouseleave', 'onmousemove',
'onmouseout', 'onmouseover', 'onmouseup', 'onmousewheel', 'onmove', 'onmoveend', 'onmovestart', 'onpaste', 'onpropertychange', 'onreadystatechange', 'onreset', 'onresize', 'onresizeend', 'onresizestart', 'onrowenter', 'onrowexit', 'onrowsdelete', 'onrowsinserted',
'onscroll', 'onselect', 'onselectionchange', 'onselectstart', 'onstart', 'onstop', 'onsubmit', 'onunload');
$ra = array_merge($ra1, $ra2);
$found = true;
while ($found == true) {
$val_before = $val;
for ($i = 0; $i < sizeof($ra); $i++) {
$pattern = '/';
for ($j = 0; $j < strlen($ra[$i]); $j++) {
if ($j > 0) {
$pattern .= '(';
$pattern .= '(&#[xX]0{0,8}([9ab]);)';
$pattern .= '|';
$pattern .= '|(�{0,8}([9|10|13]);)';
$pattern .= ')*';
}
$pattern .= $ra[$i][$j];
}
$pattern .= '/i';
$replacement = substr($ra[$i], 0, 2).'<x>'.substr($ra[$i], 2);
$val = preg_replace($pattern, $replacement, $val);
if ($val_before == $val) {
$found = false;
}
}
}
return $val;
}
相關推薦
PHP XSS攻擊過濾
https://gist.github.com/ozkanozcan/3378054 老外寫的 function removeXSS($val) { $val = preg_replace('/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/'
XSS攻擊過濾處理
sca move ogg while 子郵件 oid ole 其他 bst 關於XSS攻擊 XSS是一種經常出現在web應用中的計算機安全漏洞,它允許惡意web用戶將代碼植入到提供給其它用戶使用的頁面中。 XSS漏洞的危害 網絡釣魚,包括盜取各類用戶賬號; 竊取用戶co
php XSS攻擊原理與防禦
資料安全是軟體設計中要考慮的問題,在程式中保持資料的安全,除了保證程式碼內部執行的可靠,最主要就是嚴格控制外部資料,秉持一切使用者輸入的都是不可靠的原則,做好資料的驗證和過濾. PHP最簡單的過濾機制就是轉義,對使用者的輸入和輸出進行轉義和過濾. 我們先搞一
特殊字符的過濾,防止xss攻擊
factor change 源碼 ive ride ray react list css 概念 XSS攻擊全稱跨站腳本攻擊,是為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,故將跨站腳本攻擊縮寫為XSS,XSS是一種在web應用中的計算
變量安全過濾,防止xss攻擊
轉義 javascrip dai post ash time return 空格 去除 下面這個方法不管是字符串還是數組,都可以進行過濾 /** * @purpose : 對變量進行安全過濾,使 $_GET、$_POST、$q->record 等變量更安全
php對前臺提交的表單資料做安全處理(防SQL注入和XSS攻擊等)
/** * 防sql注入字串轉義 * @param $content 要轉義內容 * @return array|string */ public static function escapeString($content) { $pa
php 防止XSS攻擊
// 其實就是過濾從表單提交來的資料,使用php過濾函式就可以達到很好的目的。 if (isset($_POST['name'])){ $str = trim($_POST['name']); //清理空格 $str = strip_
儲存型XSS攻擊的簡單處理以及資料庫查詢過濾多個欄位重複資料
問題:儲存型Xss是由於form表單提交的資料,前端和後臺未進行過濾,將一些javascript的腳步語言存入資料庫中。導致再次查詢資料的時候瀏覽器會執行該腳步語言。如:<script>alert("XSS")</script>。 解決方案:主要是後臺的過
Struts2.3 以及 2.5 過濾 xss攻擊 的一種解決方案
Struts 2.3 本方案採用struts2的攔截器過濾,將提交上來的引數轉碼來解決。 配置struts.xml <package name="default" namespace="
php防止xss攻擊的方法
其實就是過濾從表單提交來的資料,使用php過濾函式就可以達到很好的目的。 <?php if (isset($_POST['name'])){ $str = trim($_POST['name']); //清理空格 $str = stri
PHP中防XSS攻擊和防sql注入
SQL注入如何防? TP中的底層已經做了防SQL注入的操作,只要我們操作資料庫時使用TP提供給我們的方法就不會有問題,如新增商品時我們呼叫了add方法。唯一要注意的就是如果我們自己拼SQL執行時就要自己來過濾了。 總結:如果要自己拼SQL語句,一定要自己再過濾一下【add
php防止xss攻擊
攻擊過程 使用者在輸入框中輸入指令碼<script>alert(1)</script>。點選提交後儲存資料庫,在後臺讀取資料時候會彈出1。 解決方法 &n
php安全(二):xss攻擊
XSS 全稱為 Cross Site Scripting,跨站指令碼攻擊。它指的是惡意攻擊者往Web頁面裡插入惡意html程式碼,當用戶瀏覽該頁之時,嵌入其中Web裡面的html程式碼會被執行,進而達到某些人的攻擊目的。分類1、XSS反射型攻擊,惡意程式碼並沒有儲存在目標網站
addslashes,htmlspecialchars,htmlentities轉換或者轉義php特殊字元防止xss攻擊以及sql注入
一、轉義或者轉換的目的 1. 轉義或者轉換字串防止sql注入 2. 轉義或者轉換字元防止html非過濾引起頁面佈局變化 3. 轉義或者轉換可以阻止javascript等指令碼的xss攻擊,避免出現類似惡意彈窗等等形式 二、函式 1. addslashes($str
防禦XSS攻擊:基於白名單的富文字XSS後端過濾(jsoup)
簡介: 跨站指令碼攻擊(Cross Site Scripting),為了不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,故將跨站指令碼攻擊縮寫為XSS。 攻擊原
PHP如何防止XSS攻擊
PHP防止XSS跨站指令碼攻擊的方法:是針對非法的HTML程式碼包括單雙引號等,使用htmlspecialchars()函式 。在使用htmlspecialchars()函式的時候注意第二個引數, 直接用htmlspecialchars($string) 的話,第二個引數預設
防止XSS攻擊,過濾程式碼
function remove_xss($string) { if (!is_array($string)){ $string = trim($string); $string = strip_tags($string);
使用filter過濾xss攻擊
http://winnie825.iteye.com/blog/1170833 先說一下實現思路: 1. 使用正則表示式的方式實現指令碼過濾,這個方法準確率較高,但是可能根據不能的要求會變動; 2. 為了保證配置靈活(包括正則表示式靈活),使用xml配置檔案的方式記錄配置資訊,配置資訊包含是否開啟
預防XSS攻擊,(引數/響應值)特殊字元過濾
一、什麼是XSS攻擊 XSS是一種經常出現在web應用中的電腦保安漏洞,它允許惡意web使用者將程式碼植入到提供給其它使用者使用的頁面中。比如這些程式碼包括HTML程式碼和客戶端指令碼。攻擊者利用XSS漏洞旁路掉訪問控制——例如同源策略(same or
關於xss攻擊
訪問者 登錄 pan 文章 數據 參數 innerhtml 興趣 成功 關於xss攻擊 網上相關的介紹很多,一搜索也是一大堆,這裏我就對自己感興趣的一些內容做個總結。 成因:xss是將惡意代碼(多是JavaScript)插入html代碼中。 分類: 1、 反射型 2