XSS 攻撃をフィルタリングする PHP 関数_PHP チュートリアル
次の関数を使用してユーザー入力をフィルタリングし、入力が XSS 安全であることを確認できます。フィルタリング方法の詳細については、関数内のコメントも参照してください。
function RemoveXSS($val) {
// 印刷できない文字をすべて削除します。 CR(0a)、LF(0b)、TAB(9) は許可されます
// これにより、
// n、r、t による分割は一部の入力で *許可されているため、後で処理する必要があることに注意してください
$val = preg_replace('/([x00-x08,x0b-x0c,x0e-x19]) /', '', $val);
// 直接の置換。これらは通常の文字であるため、ユーザーはこれらを必要とすることはありません
// これにより、
$search = 'abcdefghijklmnopqrstuvwxyz';
$search .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$search .= '1234567890!@#$%^&*()';
$search .= '~`";:?+/={}[]-_|'\';
for ($i = 0; $i < strlen($search); $i++) {
/ / ;? は、オプションの ; に一致します
// 0{0,7} は、任意の埋め込みゼロ (最大 8 文字まで) に一致します
// @ @ 16 進数の値を検索します
$val = preg_replace( '/([xX]0{0,8}'.dechex(ord($search[$i])).';?)/i', $search[$i], $val); ; 付き
// @ @ 0{0,7} は '0' に 0 ~ 7 回一致します
$val = preg_replace('/({0,8}'.ord($search[$i]) .';?)/', $search[$i], $val); // ; を使用します
}
// 残りの空白攻撃は t、n、r だけです
$ra1 = Array(' javascript'、'vbscript'、'式'、'アプレット'、'メタ'、'xml'、'ブリンク'、'リンク'、'スタイル'、'スクリプト'、'埋め込み'、'オブジェクト'、'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 .= '(';
$パターン .= '([xX]0{0,8}([9ab]);)';
$pattern .= '|';
$pattern .= '|({0,8}([9 |10|13]);)';
$パターン .= ')*';
}
$pattern .= $ra[$i][$j];
}N $ パターン = '/I';
$ 置換 = substr ($ ra [$ i], 0, 2). Substr ($ ra [$ i], 2); // タグをナーフするために & lt; & gt; を追加します
$ value = preg_replace ($ Pattern, $ Replacement, $ Val) // 16 進タグを除外します
($ Val_BeFore == $ Val) {
/
/
/ 置換は行われていないため、ループを終了します
$found = false;
http://www.bkjia.com/PHPjc/825147.html
www.bkjia.com

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます
