0

mysqlインジェクションとxss攻撃を防ぐための良い解決策を探しています。私はたくさんの主題を読みましたが、私にはわかりません。

[b]、[i]、[u]のようないくつかのbbコードのみを許可したい。それで全部です。

これでよろしければ教えてください:

<?php
$escape = array('input_one','input_two','get_ids_from_url','etc');

foreach($escape as $input)
{
    if(isset($_POST[$input])) 
    {$_POST[$input] = mysql_real_escape_string(htmlspecialchars(strip_tags($_POST[$input]), ENT_QUOTES, 'utf-8'));}
    if(isset($_GET[$input])) 
    {$_GET[$input] = mysql_real_escape_string(htmlspecialchars(strip_tags($_GET[$input]), ENT_QUOTES, 'utf-8'));}
}
?>
4

1 に答える 1

2

ここで行っているのは、HTMLとMySQLという2つの異なる用途のために入力をエスケープすることです。そうしないでください。魔法の引用符は理由で削除されました。

あなたがすべきことは、実際に変数を使用する場所をエスケープすることです。データベースアクセスの場合は、ほぼ非推奨で一般的に悪いmysql_関数ファミリーの代わりにPDOまたはMySQLiを使用します。

于 2012-08-31T00:33:43.653 に答える