問題タブ [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.
php - PHP のマジック クォート
PHP manualによると、コードの移植性を高めるために、データのエスケープに次のようなものを使用することをお勧めします。
実行する他の検証チェックがありますが、データのエスケープに関して上記は厳密にどの程度安全ですか? また、マジック クォートが PHP 6 で非推奨になることも確認しました。上記のコードにどのような影響がありますか? mysql_real_escape_string() のようなデータベース固有のエスケープ関数に依存する必要はありません。
php - PHP での入力エスケープについて
私が常に混乱しているのは、入力エスケープと、SQL インジェクションなどの攻撃から保護されているかどうかです。
HTTP POST を使用して PHP ファイルにデータを送信するフォームがあるとします。入力フィールドに次のように入力し、フォームを送信します。
この POST データを受け取る PHP ページの入力を印刷/エコーすると、次のようになります。
ここがややこしいポイントです。この入力文字列を (My)SQL に入れて実行すると、(引用符がエスケープされるため) データベースに正常に入力されますが、SQL インジェクションは停止しますか?
入力文字列を取得して次のようなものを呼び出すと、次のようmysqli real_escape_string
になります。
したがって、(My)SQL 経由でデータベースに入ると、次のようになります。
これには明らかにスラッシュが多すぎます。
では、入力が HTTP POST を介してエスケープされたものである場合、(My)SQL に対して安全にするために再度エスケープする必要がありますか? それとも、ここで明らかな何かが見えないだけですか?
助けてくれてありがとう。
php - bool と int をチェックする PHP に価値はありますか?
次の行があります。
get_magic_quotes_gpc()
SQLを生成するときに何度も使用されるため、オブジェクトに格納しています。また、ブールに変換しています。
それをブールに変換する価値があるかどうか疑問に思っています。チェックするステートメントは次のとおりです。
テストが厳密にブール値である場合、これは少し速くなると思います。
これが速くない理由はありますか、またはこれを行わない他の理由がある場合は?
php - 実行時にPHPのマジッククォートを無効にするにはどうすればよいですか?
私は、いくつかの異なるセットアップで実行される一連の PHP スクリプトを作成しています。そのうちのいくつかは、魔法の引用符でホストを共有しています (ホラー)。PHP または Apache の構成を制御する機能がない場合、実行時に PHP の引用符を無効にするためにスクリプトで何かを行うことはできますか?
コードがマジック クォートがオンであると想定しない方がよいでしょう。そうすれば、マジック クォートがある場合とない場合がある別のホストで同じスクリプトを使用できます。
php - なぜphpは引用符をmysqlのhtmlエンティティに変換できないのですか?
PHPはデフォルトで「魔法の引用符」を使用しますが、多くの問題があります。PHPの次のメジャーバージョンで無効になることを理解しています。
それに対する議論は理にかなっていますが、私が理解していないのは、スラッシュを削除して削除する代わりに、引用符を表すためにHTMLエンティティを使用しないのはなぜですか?結局のところ、mySQLのVASTの大部分はWebブラウザへの出力に使用されていますか?
たとえば、' 'の代わりに使用され、データベースにはまったく影響しません。
別の質問ですが、PHPでこのタグ<?php4または<?php5を使用してPHPのバージョンごとに構成を設定できないので、これらのバージョンに適切なインタープリターをロードできるのはなぜですか?
ちょっと興味があるんだけど。:)
php - PHPでデフォルトのマジッククォートまたはユーザー定義のaddslash/stripslashを使用する方が良いのはどれですか?
PHPでデフォルトのマジッククォートまたはユーザー定義のaddslash/stripslashを使用する方が良いのはどれですか?一番いいものを使いたいです。私を助けてください。
php - PHP構成ファイルでマジッククォートをオフにする方法は?XAMPPを使用しています
ファイルは何ですか?コンピューターにphp.iniとphp.ini-distがあります。
php - PHPの新旧バージョンに関する魔法の引用
このコードは、クリーンなコードがデータベースに確実に届くようにするためのものです。
以前のバージョンのPHP(4.3.0より前)およびそれ以降のバージョンのphp(4.3.0より前)で動作するはずです。
データは問題なくデータベースに到達するのでうまく機能しますが、ブラウザでエラーが発生します
mysql_prep関数を呼び出す方法です
php - PHP-より短いマジッククォートソリューション
ポータブルである必要があるアプリを書いています。PHP構成でマジッククォートを無効にする必要があることはわかっていますが、この場合、それができるかどうかわからないため、次のコードを使用しています。
魔法の引用を無効にするプロセスを簡素化するために、私は次のアイデアを思いつきました。
しかし、試してみたところ、理解できないエラーが発生しました。たとえば、?name=O'Reilly
次のようになります。
しかしunserialize(stripslashes(serialize($_GET)))
、私にこの奇妙なエラーを与えます:
注意:unserialize():32バイトのオフセット30でエラーが発生しました
編集:の長さ属性のため、serialize()
JSON関数を使用するようにコードを変更しました:
しかし、$_GET
アレイが空になりつつあるのですが、その理由を誰かに説明してもらえますか?