問題タブ [magic-quotes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
12 に答える
16057 参照

php - PHP のマジック クォート

PHP manualによると、コードの移植性を高めるために、データのエスケープに次のようなものを使用することをお勧めします。

実行する他の検証チェックがありますが、データのエスケープに関して上記は厳密にどの程度安全ですか? また、マジック クォートが PHP 6 で非推奨になることも確認しました。上記のコードにどのような影響がありますか? mysql_real_escape_string() のようなデータベース固有のエスケープ関数に依存する必要はありません。

0 投票する
5 に答える
3846 参照

php - PHP での入力エスケープについて

私が常に混乱しているのは、入力エスケープと、SQL インジェクションなどの攻撃から保護されているかどうかです。

HTTP POST を使用して PHP ファイルにデータを送信するフォームがあるとします。入力フィールドに次のように入力し、フォームを送信します。

この POST データを受け取る PHP ページの入力を印刷/エコーすると、次のようになります。

ここがややこしいポイントです。この入力文字列を (My)SQL に入れて実行すると、(引用符がエスケープされるため) データベースに正常に入力されますが、SQL インジェクションは停止しますか?

入力文字列を取得して次のようなものを呼び出すと、次のようmysqli real_escape_stringになります。

したがって、(My)SQL 経由でデータベースに入ると、次のようになります。

これには明らかにスラッシュが多すぎます。

では、入力が HTTP POST を介してエスケープされたものである場合、(My)SQL に対して安全にするために再度エスケープする必要がありますか? それとも、ここで明らかな何かが見えないだけですか?

助けてくれてありがとう。

0 投票する
2 に答える
939 参照

php - bool と int をチェックする PHP に価値はありますか?

次の行があります。

get_magic_quotes_gpc()SQLを生成するときに何度も使用されるため、オブジェクトに格納しています。また、ブールに変換しています。

それをブールに変換する価値があるかどうか疑問に思っています。チェックするステートメントは次のとおりです。

テストが厳密にブール値である場合、これは少し速くなると思います。

これが速くない理由はありますか、またはこれを行わない他の理由がある場合は?

0 投票する
5 に答える
10601 参照

php - 実行時にPHPのマジッククォートを無効にするにはどうすればよいですか?

私は、いくつかの異なるセットアップで実行される一連の PHP スクリプトを作成しています。そのうちのいくつかは、魔法の引用符でホストを共有しています (ホラー)。PHP または Apache の構成を制御する機能がない場合、実行時に PHP の引用符を無効にするためにスクリプトで何かを行うことはできますか?

コードがマジック クォートがオンであると想定しない方がよいでしょう。そうすれば、マジック クォートがある場合とない場合がある別のホストで同じスクリプトを使用できます。

0 投票する
6 に答える
7374 参照

php - なぜphpは引用符をmysqlのhtmlエンティティに変換できないのですか?

PHPはデフォルトで「魔法の引用符」を使用しますが、多くの問題があります。PHPの次のメジャーバージョンで無効になることを理解しています。

それに対する議論は理にかなっていますが、私が理解していないのは、スラッシュを削除して削除する代わりに、引用符を表すためにHTMLエンティティを使用しないのはなぜですか?結局のところ、mySQLのVASTの大部分はWebブラウザへの出力に使用されていますか?

たとえば、' 'の代わりに使用され、データベースにはまったく影響しません。

別の質問ですが、PHPでこのタグ<?php4または<?php5を使用してPHPのバージョンごとに構成を設定できないので、これらのバージョンに適切なインタープリターをロードできるのはなぜですか?

ちょっと興味があるんだけど。:)

0 投票する
4 に答える
204 参照

php - PHPでデフォルトのマジッククォートまたはユーザー定義のaddslash/stripslashを使用する方が良いのはどれですか?

PHPでデフォルトのマジッククォートまたはユーザー定義のaddslash/stripslashを使用する方が良いのはどれですか?一番いいものを使いたいです。私を助けてください。

0 投票する
1 に答える
8084 参照

php - PHP構成ファイルでマジッククォートをオフにする方法は?XAMPPを使用しています

ファイルは何ですか?コンピューターにphp.iniとphp.ini-distがあります。

0 投票する
2 に答える
411 参照

php - PHPの新旧バージョンに関する魔法の引用

このコードは、クリーンなコードがデータベースに確実に届くようにするためのものです。

以前のバージョンのPHP(4.3.0より前)およびそれ以降のバージョンのphp(4.3.0より前)で動作するはずです。

データは問題なくデータベースに到達するのでうまく機能しますが、ブラウザでエラーが発生します

mysql_prep関数を呼び出す方法です

0 投票する
3 に答える
1467 参照

php - PHP-より短いマジッククォートソリューション

ポータブルである必要があるアプリを書いています。PHP構成でマジッククォートを無効にする必要があることはわかっていますが、この場合、それができるかどうかわからないため、次のコードを使用しています。

魔法の引用を無効にするプロセスを簡素化するために、私は次のアイデアを思いつきました。

しかし、試してみたところ、理解できないエラーが発生しました。たとえば、?name=O'Reilly次のようになります。

しかしunserialize(stripslashes(serialize($_GET)))、私にこの奇妙なエラーを与えます:

注意:unserialize():32バイトのオフセット30でエラーが発生しました


編集:の長さ属性のため、serialize()JSON関数を使用するようにコードを変更しました:

しかし$_GETアレイが空になりつつあるのですが、その理由を誰かに説明してもらえますか?