ホームページ  >  記事  >  バックエンド開発  >  不正な文字のフィルタリング_PHP チュートリアル

不正な文字のフィルタリング_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:09:221057ブラウズ

不正な文字のフィルタリングこの記事では主にphpの不正な文字のフィルタリングについて説明しますASPの不正な文字をフィルタリングする機能については説明しませんが、考え方は同じです

) MySQL の通常の動作に影響を与える文字をフィルターします。

ユーザーが入力した内容 (一重引用符、二重引用符、バックスラッシュ、ヌル文字 NUL が含まれる場合があります) を mysql ステートメントに置き換えて実行する必要がある場合は、APACHE の magic_quotes_gpc 項目を On に設定する必要があります。

APACHE のこの項目が Off に設定されている場合、PHP 関数 addlashes() を使用して同じ目的を達成することもできますが、これら 2 つのメソッドを同時に使用することはできません。そうしないと、置換とエラーが繰り返されます。

サンプル:

PHPコード

if (get_magic_quotes_gpc()) {

$content=$_POST["コンテンツ"]

} その他 {

$content=addslashes($_POST["コンテンツ"]);
}

?>

もちろん、APACHE の magic_quotes_gpc 項目がオンになっている場合でも、特定の項目の特殊文字をエスケープしたくない場合は、stripslashes() を使用して

を削除できます。

2) MSSQL の通常の動作に影響を与える文字をフィルターします。

ユーザーが入力した内容 (一重引用符が含まれる場合があります) を mssql ステートメントに置き換えて実行する必要がある場合は、APACHE の magic_quotes_sybase 項目を On に設定する必要があります。この時点では、magic_quotes_gpc 項目は有効になりません。

APACHE のこの項目が Off に設定されている場合、PHP には同じ目的を達成するための適切な関数がありません。この目的を達成するには文字列置換関数を使用するしかありません。

サンプル:

PHPコード


$content=str_replace("'","''"$_POST["コンテンツ"]);

?>

現在、10.218.17.53 の PHP は mysql と mssql の両方にアクセスする必要があります。APACHE の設定では両方のデータベースを考慮することはできないため、mysql に対しては対応する設定のみが行われます。

2. SQL ステートメントを含むユーザー入力に対処するための措置。

次の 2 つの SQL 記述方法は比較的一般的ですが、ユーザーが $id='1 および 1=2 Union select...' を送信すると、最初の方法では表示すべきでないデータが表示されます。 2 番目のタイプは比較的安全です。

SQLコード

* 記事から選択します (記事 ID=$id の場合)
* 記事から選択します (記事 ID='$id' の場合)

3. ユーザーが入力したコンテンツに HTML タグや JavaScript が含まれていて、ページの通常の表示に影響を与えないようにします。

htmlspecialchars() を使用して & " > をフィルタリングできます

PHPコード

$content = htmlspecialchars($content);
4. ページに表示されるコンテンツにキャリッジ リターンとライン フィードが含まれている場合、nl2br() を使用してページ上で改行の効果を得ることができます。

方法 1.

function chkstr($paravalue,$paratype) //不正な文字をフィルタリングします
{
if($paratype==1)
{
$inputstr=str_replace("'","''",$paravalue);
}
elseif($paratype==2)
{
$inputstr=str_replace("'","",$paravalue);
}
$inputstr;
を返します }
$user1=chkstr($_GET["ユーザー"],1);
$user2=chkstr($_GET["ユーザー"],2);
//$user=$_GET["ユーザー"];
print "方法 1----------------
";
print "$user1
";
print "方法 2-----------------
";
print "$user2
";
?>
方法 2.

//使用法: qstr($str, get_magic_quotes_gpc())
関数 qstr($string, $magic_quotes=false, $tag=false)
{
$tag_str = '';
if ($tag) $tag_str = "'";
if (!$magic_quotes) {
If (strnatcmp(PHP_VERSION, '4.3.0') >= 0) {
$tag_str.mysql_real_escape_string($string).$tag_str;を返します
}
$string = str_replace("'", "[url=file://\]\'[/url]" , str_replace('\', '\\', str_replace(" $tag_str.$string.$tag_str;を返します
}
$tag_str.str_replace('\"', '"', $string).$tag_str;
を返します。 }
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/629753.html技術記事不正な文字のフィルタリング この記事では主に PHP での不正な文字のフィルタリングについて説明します。ASP での不正な文字のフィルタリング機能については説明しませんが、考え方は同じです。) MySQL の通常の動作に影響を与える文字のフィルタリング。 必要なときに...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。