問題タブ [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 - $ _REQUEST配列全体のmysql_real_escape_string()、またはそれをループする必要がありますか?
以下以外に、提出された変数を安全に抽出する簡単な方法はありますか?
(そして:isset()
この文脈で使用しますか?)
php - アポストロフィが削除されないようにする方法 PHP MySQL
ユーザー名を要求する登録システムがあります。一部の人々は、姓にアポストロフィがあり、データが MySQL データベース テーブルに書き込まれません (O'Hare など)。
文字列からアポストロフィを削除する mysql_real_escape_string を使用しています。Web サービスに対してアポストロフィを付けた値を使用する必要がある場合を除いて、これで問題ありません。そうしないと、Web サービスは false を返します。
mysql_real_escape_string を使用する前に、Web サービスで名前チェックを行うことができると考えていましたが、これはセキュリティ上の問題を引き起こす可能性がありますか? それとも、SOAP Web サービスは、クリーンな入力に対して独自のチェックを既に行っているのでしょうか?
または、PHP がアポストロフィを保持しながらも安全に保ち、MySQL がそれを受け入れることができるように、変数を渡すより良い方法はありますか?
php - 2 層サーバーで mysql_real_escape_string を使用する zend フレームワーク
私のアプリケーションの 1 つで、私は zend フレームワークを使用しています。Web/アプリケーション サーバー、データベース サーバーは物理的に異なります。今mysql_real_escape_string
、私は最初のパラメータを与えているセキュリティのために使用しています。「link_identifierが見つからないか、データベース接続識別子がありません」という警告が表示されます。
そのインスタンスの接続識別子を作成し、それが機能していることを確認したとき。私の質問は、なぜそれを単独で識別しないのかということです。
php - mysql_real_escape_string()は何もエスケープしていません
- INSERTステートメントとSELECTFROMステートメントの両方で実際のエスケープを使用する必要がありますか?
次の例で使用している構文が機能しないのはなぜですか(これは私が試した多くの方法の1つにすぎません)。
/li>
php - PHPのaddslashesとmysql(i)_escape_stringの違いは何ですか?
彼らがまったく同じことをしない場合、違いは何ですか?MySQLクエリ内の値の区切り文字'
はそうではありませんか?または多分"
しかしそれはまたaddslashesで逃げました。
他のデータベースエンジンでは(そして間違いなくPDOのようなdbラッパー内で)理解していますが、なぜ多くの人がaddslashesの代わりにmysql(i)_escape_stringを使用することに熱心なのですか?
php - mysql_real_escape_stringとアポストロフィの問題
そのため、mysql_real_escape_stringを使用してデータベースにデータを挿入してきましたが、そうすると、すべてのアポストロフィが記号’に置き換えられます。
つまり、表示するのではなく、表示しているのです。
データベースから読み戻したときに、これらのアポストロフィを再変換する方法はありますか?
ruby - Rubyで挿入または更新する前に文字列をエスケープする方法
rubyでは、ActiveRecordは更新と挿入のSQLの動的バインディングを提供しません。もちろん、生のSQLを使用できますが、接続を維持する必要があるため、以下のコードのように実行する前に、更新をエスケープしたりSQLを挿入したりする簡単な方法があるかどうかを知りたいです。 :
gsubでコードを書くことができると思いますが、それを行う準備ができている方法があるかどうかはわかります。
php - PHP-Mysql:画像をDBに保存-特殊文字をエスケープ
DBへの画像の保存に関するこのチュートリアルを読みました。チュートリアルでは、作成者は挿入する前にバイナリデータの特殊文字をエスケープします:http ://www.phpriot.com/articles/images-in-mysql/7 (使用することをお勧めしますaddslashes
がmysql_real_escape_string
、これは別の問題です)。
重要なのは、表示するとき、彼は保存されているデータを表示するだけです:http ://www.phpriot.com/articles/images-in-mysql/8
私の質問:
1)バイナリフィールドタイプ()の場合でも、特殊文字をエスケープする必要がありblob
ますか?
2)その場合、画像を正しく表示するために、文字を再度「エスケープ解除」する必要はありませんか?(もしそうなら、それを行うための最良の方法は何ですか。効率についてのコメントはありますか?大きな画像の場合:エスケープとエスケープ解除は大きなオーバーヘッドになる可能性がありますか?)
それとも、エスケープについての私の理解が完全に間違っているということですか(そして、エスケープはクエリにのみ影響し、挿入/保存された最終データには影響しませんか?)。
ありがとう
JP
php - mysql_real_escape_string & スラッシュ
まず、マジック クォートとランタイムが で正しく無効になりphp.ini
、 で確認されphpinfo()
ます。
私はmysql_real_escape_string
データに対してのみ使用しています。 afterhtmlspecialchars
と atrim
は、変数のすべてのデータクリーニングです。
それでも、一重引用符を送信すると、スラッシュがデータベースに残ります。
実行mysql_query
中は を使用し"' . $var . '"
ていますが、これまでは何も変更されていません (二重引用符が原因でしょうか?)。
何か案は?PDO/準備済みステートメントについては教えないでください。私はそれらを認識しており、このようにする理由があります。
ありがとう!
コード例 (データに対して行われるのはこれだけです):
php - MySQLの実際のエスケープ文字列
addlashesとmysql_real_escape_stringを使用してPHPログインへの入力をサニタイズしようとしていました。使用addslashes
は機能しますが、機能しmysql_real_escape_string
ません。
正しくログインできるようにする例を次に示します。
そして、これはしません:
また、他のフィールドのいくつかにはアポストロフィが含まれています。DBのエントリはエスケープされないため、addslashesを使用しても何も返されません。を使ってこれを直せるかと思っていたのですが、どうすればいいmysql_real_escape_string
のかわかりません。