0 レビュー
2 回答
セキュリティ-PHPのGET値とPOST値のエスケープ
<脇>
答えへのリンク
答えへのリンク
この質問にはすでに回答があります:
わからない
0
レビュー
答え :
解決策:
まあ、magic_quotes_gpcが悪いのと同じように悪いです。それは魔法であり、あなたが望むかどうかにかかわらず、すべてを逃れるでしょう。代わりに、それが使用されている場所でエスケープを処理すれば、問題なく変更できます。だから:
function post($key) {
if(array_key_exists($key, $_POST)) {
return $_POST[$key];
}
return false;
}
そして、必要な場所で脱出を行います。そうしないと、物事が奇妙に見える可能性があり、それらをエスケープしないとポイントが無効になります。このことを考慮;家系の名前O'Hara
をテキストボックスに入力しました。 echo
に戻したいのですが、 getPost
を使用してフェッチします。これが私が返すものです:
O\'ハラ
もう一度
htmlspecialchars
しましたか?さて、私は次のようになります:O \&#39; ara
または何か。これは私によく起こります、そしてそれは信じられないほど迷惑です-それをしないでください。
わからない
0
レビュー
答え :
解決策:
役に立たないとは言いませんが、少し見当違いです。エスケープする必要があるコンテキストで使用する直前に、エスケープを実行する必要があります。たとえば、値をブラウザに送り返したい場合は、次のようにします。
echo htmlspecialchars($_GET['name']);
ただし、データベースに送信する場合は、次のようにします。
mysql_query(... 'INSERT INTO users VALUES ("'.mysql_real_escape_string($_GET['name']).'")');
あなたのメソッドを使用すると、それを使って何ができるかが決まります。これを行う場合:
echo getGet('name');
実際の名前ではなく、MySQLでエスケープされた文字列を出力します。
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。