問題タブ [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.

0 投票する
9 に答える
26406 参照

php - mysql_real_escape_string()はMySQLにスラッシュを残します

私はちょうど新しいホスティング会社に引っ越しました、そして今、文字列がエスケープされるときはいつでも:

スラッシュはデータベースに残ります。これが起こるのを私が見たのはこれが初めてなので、私のスクリプトはどれも使用しません

もう。

これは、lighttpd1.4サーバーでfastcgiとしてphp5.2.6を実行しているCentOS4.564ビット上にあります。すべてのmagic_quotesオプションがオフになっていて、mysqlクライアントAPIが5.0.51aであることを確認しました。

6つのWebサーバーすべてで同じ問題が発生します。

どんな助けでもいただければ幸いです。

ありがとう。

編集:

MagicQuotesはオンになっていません。オフにすることはお勧めしません。これは問題ではありません。

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

php - ユーザー提供の入力SQLエスケープ

アドバイスをいただけますか?質問を検索しましたが、私のようなものは見つかりませんでした。

SQLクエリで使用する場合、ユーザー入力を自動的にエスケープするにはどうすればよいですか?私は私のコードで次のようなものでいっぱいになるのが好きではありません

mysql_real_escape_stringを実行するEscapeメソッドを持つデータベースクラスがあると仮定します

しかし、挿入クエリを壊すため、SQLクエリにも自動エスケープを設定できません。

それはそれらを\'xxx\'にします。これは正しくありません。

私がしたい最後のことは、システムをより複雑にするので、パラメーター化されたステートメントを作成することです。他に何も残らないときに、このオプションを検討します。

要するに-クエリ全体で機能し、値のみをエスケープするスマート自動エスケープを作成するにはどうすればよいですか?

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

php - これは、少なくとも穏やかに安全な php コードですか?

$_POST 変数の束が長い形式で送信されていますが、それぞれをハードコーディングする代わりにmysql_escape_string()、次のことを行っても問題ありませんか? これが実際に安全で実行可能なコードであるかどうかはわかりません。

& を使用しているため、値ではなく参照によって渡されているため、実際に $_POST の値を変更していることは確かです。

また、mysql_real_escape_string()代わりに使用する必要がありますか?

編集:上記の方法とともに PDO と prepare() を使用しています。これで対応してくれますか?

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

php - mysql_real_escape_string() は文字列を完全に削除します

次のように、php フォームから受け取ったすべての文字列パラメーターをエスケープしています。

SQL インジェクションに関するいくつかの問題を回避するため。しかし、関数から文字列を戻すと、結果は何もなくなります。

また、PHP ログにこの奇妙な警告が表示され続けます。

ホストの使用: PHP バージョン 4.4.7

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

mysql - CakePHP でデータを保存するときに mysql_real_escape_string と htmlspecialchars を使用する最良の方法は何ですか?

私は CakePHP で FCKEditor を使用しています。エディターから送信されたデータを保存するときに、データに対して htmlspecialchars() および mysql_real_escape_string() 関数を実行して、データベースに保存する前にデータを消去したいと考えています。問題は、CakePHP フレームワーク内でこれを行う場所がよくわからないことです。私はこのようにコントローラーで試しました:

ただし、 $this->data は配列であり、これらの関数は文字列を想定しているため、機能しません。モデルの検証配列でそれを行いますか? 何も思いつきません。また、mysql_real_escape_string() 内で htmlspecialchars() を実行することが適切でない場合はお知らせください。

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

php - SQLインジェクションの試みPHP5.2.6

XAMPPでのPHP5.2.6の使用:ここ
で SQLインジェクションについて読み、次のログインフォームで試してみました:

およびphpコード:

私が見つけたのは、$pass変数にはすでにすべての特殊文字がエスケープされているということでした。では、 PHP 5.2.6でmysql_の実際の_エスケープ文字列を使用する必要はありませんか?_

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

php - DB に接続しない mysql_real_escape_string の代替

DB接続なしでドライテストを行う必要がある場合があるため、データベースに接続せずに mysql_real_escape_string として動作する関数が必要です。mysql_escape_string は推奨されていないため、望ましくありません。私の発見のいくつか:

http://www.gamedev.net/community/forums/topic.asp?topic_id=448909

http://w3schools.invisionzone.com/index.php?showtopic=20064

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

php - mysql_real_escape_string と一重引用符

私はかなりイライラしています。たとえば、O'Connor のように、一重引用符で囲んだ名前をデータベースに挿入できるようにしたいと考えています。

したがって、DB に挿入するときは、次のようにします。

そして、DB に $lname を挿入します。

DB にある場合は、O\'Connor として表示されます。

したがって、Web アプリケーションでその姓を思い出すには、次のようにする必要があります。

これはすべてうまくいくようです。ただし、姓を検索して結果を表示する検索機能があります。検索するときは、結果を得るために O\'Connor を検索する必要があります。

ご覧のとおり、検索した後、テキストボックスには検索されたばかりの値が (セッションを使用して) 自動的に保存されます。だから私のコードはこれです:

前に言ったように、検索するときは「O\'Connor」を使用する必要があり、検索後、テキスト ボックスの値は「O\\\\'Connor」になります。

これを理解しようとするのはイライラします。私が間違っていることを誰かが知っていますか?ありがとう!

編集:

魔法の引用符に関する私のphp5.iniファイルは次のとおりです。

ただし、私のサイトは GoDaddy でホストされており、ファイルを編集する権限がありません :(

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

php - mysqli_real_escape_string と \nl を切り替えるにはどうすればよいですか?

私は mysqli_real_escape_string() でいくつかの読み取りを行ってきましたが、コンテンツを適切にエスケープした後、再度引き出したときに適切に表示するのに問題があります。

ここに私が持っているコードがあります:

次のコードに対する私の希望は、レコードを更新して不正な文字をエスケープし、成功すると、以前の視覚的な整合性を維持しながら更新されたクエリを読み戻すことでした。(つまり、このコンテンツがエコーされるテキストエリアに、br タグではなく改行を表示したいのです。)

残念ながら、今のところ、エスケープ後にまだ改行文字が表示されています。私は何が欠けていますか?

お時間を割いていただき、ありがとうございました。アドバイスをいただければ幸いです。

残念ながら、そうではありません。私はまだ改行文字を取得します

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

php - MySQLの実際のエスケープ文字列は複数の変数をループします

名前、住所、都市、州、郵便番号の値$ name、$addressなどに挿入したいとします。

mysql_real_escape_string挿入する前に、各変数を実行するにはどうすればよいですか。各変数を正しく書き出す代わりに、foreachまたはloopまたはwhileメソッドが必要ですか?

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

トム

だから私が持っているなら

たくさんのエラーが発生します。

それで?