問題タブ [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 投票する
5 に答える
188 参照

php - php セキュア get 他人に対して

最初に $_GET を使用して送信されたものからいくつかの変数を割り当てる php ファイルがあります。

次に、いくつかの mysql クエリを実行し、出力を処理してから、いくつかのテキストと変数をエコーし​​ます。

コードで設定した唯一の保護はmysql_real_escape_string、GET に対するものです。

それは攻撃を防ぐのに十分ですか?

他に何ができますか?

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

php - PHPで引用符を2回エスケープする

私は複雑なフォームを持っており、最初にいくつかの$_GETパラメーターを取得する必要があります。データベースでパラメーターを検索するので、明らかにmysql_real_escape_string()それらに対して実行する必要があります。

私にとってのそれらの問題は、最初のデータベースルックアップの後です。ユーザーがフォームを送信すると、リクエストとして送信します。偽のフォーム送信で誰かが私のサイトをハッキングしようとした場合$_POSTに備えて、明らかにこの呼び出しを再度実行する必要があります。mysql_real_escape_string

次に、私が抱えている問題は、引数が2回エスケープされ、クエリが次のように奇妙に見え始めることです。

したがって、システムは\'を追加しているようで、私を台無しにしています:)また、他の形式では、そのような動作は見られません。これを引き起こしている可能性があるものについてのアイデアはありますか?

奇妙なことの1つは、エスケープされていないパラメーターを投稿に送信しようとしたところ、同じ問題が発生することです。それは手がかりですが、私にとっては十分ではありません。:(

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

mysql - mysql_real_escape_string をいつ使用するか?

いつ mysql_real_escape_string を使用する必要がありますか?

データベースに行を挿入するときだけですか? または、ユーザー入力がある場合のみですか?

ありがとう

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

php - mysql_real_escape_stringは十分ではありませんか?

したがって、%27を使用すると、データがサニタイズされている場合でも、SQLインジェクションを実行できます。mysql_real_escape_string

何をすべきか?

例を使用して編集します。

%27) SQL INJECTION HERE %2F*searchtermクエリ文字列を渡すと、次のページに出力されます。

SQL構文にエラーがあります。1行目の「BOOLEANMODE)」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

dbクラスで問題を見つけてくれてありがとう。

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

php - htmlページのストリップスラッシュについて非表示にする方法... phpページで

CMS管理パネルから入力を追加すると、このphpメソッドを実行する前にデータを追加します..

私はdbレコードに特殊文字が多すぎるためですが、ストリップスラッシュは、ストリップスラッシュをデコードする方法またはそれらを非表示にする方法もphpページに示しています。. 事前に感謝します。

phpの良い機能を教えてください...ありがとう

ありがとう

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

php - データベースに HTML のみを許可するにはどうすればよいですか?

ユーザーが HTML のみをフォームに入力し、送信時にデータベースに保存できるようにしようとしています。を使ってみたmysql_real_escape_stringのですが、HTMLタグでフォームに入れたPHPが剥がれていないようです。データベースに保存されているものを「フィルタリング」するにはどうすればよいですか?

編集:
HTML をそのまま維持したい。したがって、ユーザーが入力するとします

送信をヒットします。それを問題なくデータベースに入力し、後で投稿に表示できるようにしたいと考えています。

PHPタグなどを取り除きたい:

それでも意味がわからない場合は、もう少しうまく説明できるように最善を尽くします。

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

php - encodeURIComponentおよびmysql_real_escape_string

mysql_real_escape_string()データが関数を使用してJSファイルにエンコードされている場合、PHPajaxファイルでDBに送信するデータにPHP関数を使用する必要があるかどうかを尋ねますencodeURIComponent()。ありがとう

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

php - mysql_real_escape_string() が変数をサニタイズしない

SQL インジェクションを防止しようとしている既存の Web サイトに取り組んでいます。以前$_GET['ID']は消毒されていませんでした。

URL の末尾に ' を付けると、次のmysql_real_escape_string()ようになりますmysql_error()

SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルを参照して、1 行目の '\\' AND s1.MERCHANT_ID=me.MERCHANT_ID' 付近で使用する正しい構文を確認してください。

なしでmysql_real_escape_string()私は得る:

SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルで、1 行目の '\' AND s1.MERCHANT_ID=me.MERCHANT_ID' の近くで使用する正しい構文を確認してください。

どうしたのかわからない?どんな助けでも大歓迎です。

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

php - PHPでmysql_real_escape_string関数を使用する方法

したがって、私が書いているこのプログラムでは、実際にフォームを使用してユーザーからSQLクエリを取得します。次に、データベースでそのクエリを実行します。

ユーザー入力を「信頼」しないことを知っているので、入力をサニタイズしたいと思います。使用しようとしてmysql_real_escape_stringいますが、機能させることができませんでした。

入力を前提として、これが私が試していることです。 select * from Actor;

これは常に私に与えています

"無効入力!"

エラー。

clean_stringパーツを取り出してmysql_queryクエリを実行すると、

"無効入力"

メッセージは出力されません。むしろ、私がこれを行うとき:

出力されません

"無効入力"。

ただし、このmysql_real_escape_string関数を使用する必要があります。私は何が間違っているのですか?

アップデート:

入力として与えられ select * from Actor;て、私は以下を見つけました。

echoステートメントを使用すると、サニタイズする前に、文字列が値を保持していることがわかりました select * from Actor; 。これは正しいです。ただし、サニタイズした後は、の値が正しくないselect *\r\nfrom Actor;ため、エラーメッセージが表示されます。なぜ mysql_real_escape_stringこれをしているのですか?

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

php - PHP/MYSQL を使用した電子メールの文字のエスケープ

mail()PHPの関数を使用するときに、文字がどのようにエスケープされるかの背後にあるロジックを理解するのに問題があります。私は PHP 5.2 を使用しており、magic_quotes_qpc をオンにし、runtime/sybase をオフにしています。これが問題です。

  1. テキスト入力を受け取るフォームがあり、次のmysqli_real_escapeような SQL ステートメントで使用するために特殊文字をエスケープするために使用します。

    /li>
  2. 次のコメントを入力すると、「私はそれを食べません!」フォームに入力すると、データベースに次のように表示されます-「私はそれを食べません!」、これは私が期待するものです. キャリッジ リターン/改行を追加すると、phpMyAdmin のデータベース フィールドに表示されるのは、特殊文字のないキャリッジ リターンと改行だけです (つまり、"\r\n" などはありません)。

  3. 関数を使用しmailてメッセージを送信すると (つまりmail($to, $subject, $text, $headers))、電子メールの本文に次のような奇妙なものが表示されます。

    /li>

結局のところ、メール出力をフォーム入力とまったく同じようにフォーマットしたいだけです。つまり、次のようになります。

アポストロフィの前にトリプル エスケープがある理由と、\r\n がメールに表示される理由がわかりません。