問題タブ [mysql-real-escape-string]
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 mysql_real_escape_string() -> stripslashes() 複数のスラッシュを残す
PHP/MySQL で文字列をエスケープ/削除する際に問題が発生しています - 冗長なスラッシュが常にあるようです。
例として、次の文字列を見てみましょう。
データベースに文字列を追加するとき、私はそれをエスケープしてmysql_real_escape_string()
おり、以下がデータベースに保存されます( EDIT : mysql アプリでデータベースに直接クエリを実行してこれを確認しました):
データベースから読み戻すときに、文字列を渡すstripslashes()
と、次のものが返されます。
引用符はまだエスケープされているため、html が壊れ、テキストに下線が引かれません。
- なぜ
mysql_real_escape_string()
3 つのスラッシュを追加し、stripslashes()
2 つのスラッシュを削除するのですか? 両方とも1つのスラッシュを追加/削除することを期待しています. - どうすればこれを防ぐことができますか?
- 私はこれに正しい方法でアプローチしていますか?
php - mysql_real_escape_stringよりもMySQLクエリ/クエリ文字列をエスケープするのにPDOが優れているのはなぜですか?
PDO
MySQLのエスケープには、よりも使用したほうがよいと言われていますmysql_real_escape_string
。
たぶん私は脳死の日を過ごしているかもしれません(またはそれは私が想像力の範囲ではないという事実であり、自然なプログラマーであり、PHPに関してはまだ初心者の段階にあります)が、 PHPのマニュアルを確認し、PDOのエントリを読んでください。私は、PDOが実際に何であるか、そしてなぜそれがを使用するよりも優れているのかについてはまだはっきりしていませんmysql_real_escape_string
。これは、OOPの複雑さをまだ理解していないためかもしれませんが(OOPと関係があると思います)、変数と配列値の前にコロンがあるように見えるという事実を除けば、それが実際に何であるか、そしてあなたがそれをどのように使用するか(そしてなぜそれがより良いのか)はまだわかりませんmysql_real_escape_string
。(それはまた、私が「クラス」が何であるかを明確に理解していないという事実と関係があるかもしれません。したがって、「PDOクラス」を読んだとき、私は本当に賢くありません)。
MySQL Webサイトの「開発者ゾーン」ビットに関する記事を1つか2つ読んだのですが、まだはっきりしていません。現時点では何なのかわからないので、今は少し遠いのではないかと思いますが、それでも教育を広げて、どうすれば改善できるのか興味があります。
誰かが「平易な英語」で私にPDOとは何かを説明できますか(または平易な英語で書かれた主題に関する何かの方向に私を向けてください)、そしてあなたはそれをどのように使うのですか?
php - $ _POSTは引用符の前にスラッシュを自動的に追加するので、なぜmysql_real_escape_string()をわざわざ使用するのですか?
PHPでは、$ _ POSTは引用符の前にスラッシュを自動的に追加します。それでは、なぜmysql_real_escape_string()をわざわざ適用するのでしょうか。たとえば'rrr
、入力フィールドに入力すると、\'rrr
それをエコーすると取得します。
c++ - c++ Mysql C API mysql_real_escape_string
私は mysql c api、特に mysql_real_escape_string 用のクラス ラッパーを構築していますが、それを正しく行っているとは思いません。
これは私が関数のために持っているものです:
これを実行してみましたが、期待どおりに実行されず、mysql エラーで終了しました。
php - PHP MYSQL ファイル コンテンツ エスケープの問題
PHP を使用して .pdf ファイルを mysql データベースにアップロードしようとしています。
ファイルの内容以外は問題ありません。どのように特殊文字をエスケープしようとしても、クエリは常に失敗します。ほとんどの場合、「不明なコマンド \n」が表示されます。
私は、addslashes、mysql_real_escape_string、removeslashes などを使用しました。
ファイルの内容をエスケープする方法について誰か考えがありますか?
どうもありがとう、
php - $ _SESSION変数のmysql_real_escape_string()が必要ですか?
mysql_real_escape_string()
MySQLクエリで$_SESSION
変数の関数を使用する必要がありますか?理論的には、変数は、または変数$_SESSION
とは異なり、エンドユーザーが変更することはできませんか?$_GET
$_POST
ありがとう :)
perl - Perl の DBI 用の PHP の mysql_real_escape_string() に相当するものはありますか?
DBIモジュールmysql_real_escape_string()
の Perl 用の PHP と同じように機能する関数があるかどうか教えてもらえますか?
php - Htmlentities vs addslashes vs mysqli_real_escape_string
私はPHPアプリケーションの保護についていくつか読んでいますが、賢明な攻撃者に奇妙なことが起こる可能性があるmysqli_real_escape_string
ため、MySQLテーブルにデータを挿入するときに使用する正しい機能であるように思えます. addslashes
右?
しかし、私を混乱させていることが1つあります。ユーザーが入力したデータをユーザーにエコーバックしてデータを保護するaddslashes
よりも、アドバイスを受ける方が良いと覚えているようですが、脆弱性があるようです。これは本当ですか、それとも間違って覚えていますか?htmlentities
addslashes
php - パラメータをバインドする場合、mysql_real_escape_string を使用する必要がありますか?
次のコードがあります。
この場合、mysql_real_escape_string が必要ですか、それとも大丈夫ですか?
php - PHP、jQuery、および .post(): mysql_real_escape_string がめちゃくちゃになる
私はしばらくこれで髪を引き裂いています。
index.php:
login.php:
どのエコーも何も返しません。
settings.php:
settings.php-include をコメントアウトすると、コードはうまく機能します (もちろん、echo $uid は機能しません)。誰が私が間違っているのか知っていますか?
index.php には、違いがある場合は settings.php も含まれています。
編集: 以下の投稿で、明確にしたいと思いました。パスはすべて正しいです。settings.php (およびその他のスクリプト) はすべてルート フォルダーの外に配置され、Web ユーザーがアクセスできないようにします。スクリプトからアクセスすると、それらはうまく機能しています。