目次
phpセキュリティフィルタリング
ホームページ バックエンド開発 PHPチュートリアル php セキュリティ フィルタリング_PHP チュートリアル

php セキュリティ フィルタリング_PHP チュートリアル

Jul 12, 2016 am 09:08 AM
android

phpセキュリティフィルタリング

/*ansicコード-URLコードテーブル: http://www.w3school.com.cn/tags/html_ref_urlencode.html

-------------- ------------ -------------------------------------- ------------ -------------------------------------- ------------

1. ユーザー入力の検証とフィルタリング

最も一般的な英数字入力であっても、セキュリティ上の問題を引き起こしやすい文字をいくつか紹介します:

!$ ^ & * ( ) ~ [ ] { } ' " ; < > ? - `

データベース内で特別な意味を持つ文字:

'" ; いくつかの非印刷文字もあります:

文字 x00 または ASCII 0、NULL または FALSE

文字 x10 と x13、または ASCII 10 と 13、n r

文字 x1a または ASCII 26 は、ファイルの終わりを示します

間違ったパラメータ タイプを入力すると、予期せぬ問題が発生する可能性もありますプログラム内のエラー。

パラメータ値を入力しすぎると、オーバーフローやその他のエラーが発生する可能性があります。

2. ファイルのパスと名前のフィルタリング

ファイル名にバイナリ データを含めることはできません。そうしないと問題が発生する可能性があります。

一部のシステムでは Unicode マルチバイトでエンコードされたファイル名を使用できますが、それを避け、代わりに ASCII 文字を使用するようにしてください。

Unix システムではファイル名設定でほぼすべての記号を使用できますが、- と _ を使用し、他の文字の使用は避けてください。

同時に、ファイル名の長さを制限する必要があります。

3. SQL インジェクションを防ぐ

ユーザー入力が数値の場合は、次の方法を使用できます:

is_int() 関数 (または is_integer() または is_long() 関数)

gettype() 関数を使用する

intval() 関数を使用する

settype() 関数を使用する

strlen() 関数を使用してユーザー入力文字列の長さを確認する

日付または時刻が有効かどうかを確認するには、strtotime() 関数を使用できます

4. XSS 攻撃を防止する

xss 攻撃の一般的な方法は、PHP に組み込まれている js スクリプトを実行するために HTML 要素を挿入することです。いくつかの防御機能 (htmlentities や htmlspecialchars など)

5. ユーザーが送信した URL をフィルターする

ユーザーが URL を入力して画像やリンクを呼び出すことが許可されている場合は、http 以外の URL を渡さないようにする必要があります。 javascript:、vbscript:、data: などのプロトコル。

PHPの組み込み関数parse_url()関数を利用してURLを分割して判定することができます。

6. リモート実行の防止 -- 次の表に、シェルに関連するいくつかの文字を示します:

リモート実行では通常、eval() 関数などの PHP コード実行を使用するか、exec()、passthru ()、proc_open などのコマンド実行を呼び出します。 ()、shell_exec()、system()、または Popen()。

PHP コードの挿入: PHP は、開発者に PHP スクリプトを呼び出すためのさまざまな方法を提供します。ユーザーが制御可能なデータのフィルタリングに注意を払う必要があります。

7. シェルコマンドの実行

PHP には、exec() 関数や ` (バックティック) など、システムコマンドを直接実行できるいくつかの関数が用意されています。

PHP のセーフ モードはある程度の保護を提供しますが、セーフ モードをバイパスする方法もいくつかあります:

1. サーバーがサポートする環境に Perl スクリプト、または Python や Ruby などをアップロードして、スクリプトを実行します。他の言語では PHP セーフ モードをバイパスします。

2. システムのバッファ オーバーフローの脆弱性を利用して、セーフ モードをバイパスします。

シェルに関連するいくつかの文字:

名前文字 ASCII 16 進 URL エンコード HTML エンコード

改行 10 22 " または "

ドル記号 $ 36 x24 %24 $

コネクタ & 38 x26 %26 & #38 または amp

一重引用符 ' 39 x27 %27 '

左括弧 ( 40 x28 %28 (

右括弧) 41 x29 %29 )

アスタリスク* 42 x2a %2a *

ハイフン - 45 x2d %2d -

セミコロン; 59 x3b %3b ;

左山括弧< 60 x3c %3c <

直角括弧&# 62

疑問符? 63 x3f %3f ?

左括弧 [91 x5b %5b [

バックスラッシュ 92 x5c %5c \

右角括弧] 93 x5d %5d ]

キャレット ^ 94 x5e %5e ^

バッククォート ` 96 x60 %60 `

左中括弧 { 123 x7b %7b {

パイプ 124 x7c %7c |

右中括弧} 125 x7d %7d }

チルダ ~ 126 x7e %7e ~

---------------------------- ---------- -------------------------------------- ---------- -----------------------

セキュリティフィルター機能コード*/

/**

* 安全なフィルタリング入力 [jb]

*/

function check_str($string , $isurl = false)

{

$string= preg_replace('/[\x00-\x08\x0B\x0C\x0E-\x1F]/','', $string); //制御文字を削除

$string= str_replace(array("

empty($isurl)&& $string =preg_replace("/&(?!(#[0-9]+|[a-z]+);)/si",'&',$string);//HTML 内&#xxx; を使用して、(スペース)、? Unicode 文字などの一部の文字をエンコードできます。A(?!B) は、A の後に B が続かないことを意味するため、作成者は同様の HTML エンコード文字を保持したいと考えています。問題の文字

を削除します $string= str_replace(array("%3C",'<'),'<',$string); //ascii の '<' は '<' に変換されます。

$ string= str_replace(array("%3E",'>'),'>',$string);

$string= str_replace(array('"',"'","t", ' ') ,array('"',''','',' '),$string);

returntrim($string);

}

/**

* セキュリティフィルタリングクラス - JavaScript、CSS、iframe、オブジェクトなどの安全でないパラメータをフィルタリングします。 高いフィルタリングレベル

* @param string $value フィルタリングする必要がある値

* @return string

*/

function fliter_script( $value) {

$value=preg_replace("/(javascript:)?on(click|load|key|mouse|error|abort|move|unload|change|dblclick|move|reset|resize|submit )/i ","&111n\2",$value);

$value= preg_replace("/(.*?)/si","",$value);

$value= preg_replace(" /(.*?)/si","",$value);

$value= preg_replace ("//iesU", '', $value);

return$value ;

}

/**

* セキュリティフィルタリングクラス - HTMLタグのフィルタリング

* @param string $value フィルタリングする値

* @return string

*/

function filter_html($value) {

if(function_exists('htmlspecialchars')) return htmlspecialchars($value);

returnstr_replace(array(" &", '"', "'", "<",">"), array("&", """, "'","<", ">"), $value) ;

}

/**

* セキュリティ フィルタリング クラス - SQL インジェクションを防ぐために受信データに下線を付けます

* @param string $value フィルタリングする値

* @return string

*/

function filter_sql($value) {

$sql= array("select", 'insert', "update", "delete","' ", " /*","../", "./","union", "into", "load_file","outfile");

$sql_re=array("","","" 、"" 、""、""、""、""、""、""、""、"");

returnstr_replace($sql, $sql_re, $value);

}

/**

* セキュリティ フィルタリング クラス - 一般的なデータ フィルタリング

* @param string $value フィルタリングする必要がある変数

* @return string|array

*/

function filter_escape($value) {

if(is_array($value)) {

foreach($value as $k => $v) {

$value[$ k]= self::fliter_str($v);

}

}else {

$value= self::fliter_str($value);

}

return$value;

}

/**

* セキュリティフィルタリングクラス - 特殊な有害な文字をフィルタリングするための文字列フィルタリング

* @param string $value フィルタリングされる値

* @return string

*/

function filter_str($value) {

$badstr= array("

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1055558.html技術記事 php セキュリティ フィルター/*ansic コード - URL コード テーブル: http://www.w3school.com.cn/tags/html_ref_urlencode.html --------------------- ----- -------------------------------------- ----- ----------...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

新しいレポートは、噂のSamsung Galaxy S25、Galaxy S25 Plus、Galaxy S25 Ultraのカメラアップグレードのひどい評価を提供します 新しいレポートは、噂のSamsung Galaxy S25、Galaxy S25 Plus、Galaxy S25 Ultraのカメラアップグレードのひどい評価を提供します Sep 12, 2024 pm 12:23 PM

ここ数日、Ice Universeは、サムスンの次期主力スマートフォンであると広く信じられているGalaxy S25 Ultraの詳細を着実に明らかにしている。とりわけ、リーカーはサムスンがカメラのアップグレードを1つだけ計画していると主張した

Samsung Galaxy S25 Ultraの最初のレンダリング画像がリークされ、噂のデザイン変更が明らかに Samsung Galaxy S25 Ultraの最初のレンダリング画像がリークされ、噂のデザイン変更が明らかに Sep 11, 2024 am 06:37 AM

OnLeaks は、X (旧 Twitter) のフォロワーから 4,000 ドル以上を集めようとして失敗した数日後、Android Headlines と提携して Galaxy S25 Ultra のファーストルックを提供しました。コンテキストとして、h の下に埋め込まれたレンダリング イメージ

IFA 2024 | TCLのNXTPAPER 14は、パフォーマンスではGalaxy Tab S10 Ultraに匹敵しませんが、サイズではほぼ匹敵します IFA 2024 | TCLのNXTPAPER 14は、パフォーマンスではGalaxy Tab S10 Ultraに匹敵しませんが、サイズではほぼ匹敵します Sep 07, 2024 am 06:35 AM

TCLは、2つの新しいスマートフォンの発表に加えて、NXTPAPER 14と呼ばれる新しいAndroidタブレットも発表しました。その巨大な画面サイズはセールスポイントの1つです。 NXTPAPER 14 は、TCL の代表的なブランドであるマット LCD パネルのバージョン 3.0 を搭載しています。

新しいレポートは、噂のSamsung Galaxy S25、Galaxy S25 Plus、Galaxy S25 Ultraのカメラアップグレードのひどい評価を提供します 新しいレポートは、噂のSamsung Galaxy S25、Galaxy S25 Plus、Galaxy S25 Ultraのカメラアップグレードのひどい評価を提供します Sep 12, 2024 pm 12:22 PM

ここ数日、Ice Universeは、サムスンの次期主力スマートフォンであると広く信じられているGalaxy S25 Ultraの詳細を着実に明らかにしている。とりわけ、リーカーはサムスンがカメラのアップグレードを1つだけ計画していると主張した

Vivo Y300 Pro は、7.69 mm のスリムなボディに 6,500 mAh のバッテリーを搭載 Vivo Y300 Pro は、7.69 mm のスリムなボディに 6,500 mAh のバッテリーを搭載 Sep 07, 2024 am 06:39 AM

Vivo Y300 Pro は完全に公開されたばかりで、大容量バッテリーを備えた最もスリムなミッドレンジ Android スマートフォンの 1 つです。正確に言うと、このスマートフォンの厚さはわずか 7.69 mm ですが、6,500 mAh のバッテリーを搭載しています。これは最近発売されたものと同じ容量です

Samsung Galaxy S24 FEは、4色と2つのメモリオプションで予想よりも低価格で発売されると請求されています Samsung Galaxy S24 FEは、4色と2つのメモリオプションで予想よりも低価格で発売されると請求されています Sep 12, 2024 pm 09:21 PM

サムスンは、ファンエディション(FE)スマートフォンシリーズをいつアップデートするかについて、まだ何のヒントも提供していない。現時点では、Galaxy S23 FE は 2023 年 10 月初めに発表された同社の最新版のままです。

Xiaomi Redmi Note 14 Pro Plusは、Light Hunter 800カメラを搭載した初のQualcomm Snapdragon 7s Gen 3スマートフォンとして登場します Xiaomi Redmi Note 14 Pro Plusは、Light Hunter 800カメラを搭載した初のQualcomm Snapdragon 7s Gen 3スマートフォンとして登場します Sep 27, 2024 am 06:23 AM

Redmi Note 14 Pro Plusは、昨年のRedmi Note 13 Pro Plus(Amazonで現在375ドル)の直接の後継者として正式に発表されました。予想通り、Redmi Note 14 Pro Plusは、Redmi Note 14およびRedmi Note 14 Proと並んでRedmi Note 14シリーズをリードします。李

Motorola Razr 50s は初期リークで新たな予算を折り畳める可能性があることを示す Motorola Razr 50s は初期リークで新たな予算を折り畳める可能性があることを示す Sep 07, 2024 am 09:35 AM

Motorola は今年数え切れないほどのデバイスをリリースしましたが、そのうち折りたたみ式デバイスは 2 つだけです。ちなみに、世界の大部分ではこのペアが Razr 50 および Razr 50 Ultra として受け入れられていますが、Motorola は北米では Razr 2024 および Razr 2 として提供しています。

See all articles