問題タブ [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 セキュア get 他人に対して
最初に $_GET を使用して送信されたものからいくつかの変数を割り当てる php ファイルがあります。
次に、いくつかの mysql クエリを実行し、出力を処理してから、いくつかのテキストと変数をエコーします。
コードで設定した唯一の保護はmysql_real_escape_string
、GET に対するものです。
それは攻撃を防ぐのに十分ですか?
他に何ができますか?
php - PHPで引用符を2回エスケープする
私は複雑なフォームを持っており、最初にいくつかの$_GET
パラメーターを取得する必要があります。データベースでパラメーターを検索するので、明らかにmysql_real_escape_string()
それらに対して実行する必要があります。
私にとってのそれらの問題は、最初のデータベースルックアップの後です。ユーザーがフォームを送信すると、リクエストとして送信します。偽のフォーム送信で誰かが私のサイトをハッキングしようとした場合$_POST
に備えて、明らかにこの呼び出しを再度実行する必要があります。mysql_real_escape_string
次に、私が抱えている問題は、引数が2回エスケープされ、クエリが次のように奇妙に見え始めることです。
したがって、システムは\'を追加しているようで、私を台無しにしています:)また、他の形式では、そのような動作は見られません。これを引き起こしている可能性があるものについてのアイデアはありますか?
奇妙なことの1つは、エスケープされていないパラメーターを投稿に送信しようとしたところ、同じ問題が発生することです。それは手がかりですが、私にとっては十分ではありません。:(
mysql - mysql_real_escape_string をいつ使用するか?
いつ mysql_real_escape_string を使用する必要がありますか?
データベースに行を挿入するときだけですか? または、ユーザー入力がある場合のみですか?
ありがとう
php - mysql_real_escape_stringは十分ではありませんか?
したがって、%27を使用すると、データがサニタイズされている場合でも、SQLインジェクションを実行できます。mysql_real_escape_string
何をすべきか?
例を使用して編集します。
%27) SQL INJECTION HERE %2F*
searchtermクエリ文字列を渡すと、次のページに出力されます。
SQL構文にエラーがあります。1行目の「BOOLEANMODE)」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。
dbクラスで問題を見つけてくれてありがとう。
php - htmlページのストリップスラッシュについて非表示にする方法... phpページで
CMS管理パネルから入力を追加すると、このphpメソッドを実行する前にデータを追加します..
私はdbレコードに特殊文字が多すぎるためですが、ストリップスラッシュは、ストリップスラッシュをデコードする方法またはそれらを非表示にする方法もphpページに示しています。. 事前に感謝します。
phpの良い機能を教えてください...ありがとう
ありがとう
php - データベースに HTML のみを許可するにはどうすればよいですか?
ユーザーが HTML のみをフォームに入力し、送信時にデータベースに保存できるようにしようとしています。を使ってみたmysql_real_escape_string
のですが、HTMLタグでフォームに入れたPHPが剥がれていないようです。データベースに保存されているものを「フィルタリング」するにはどうすればよいですか?
編集:
HTML をそのまま維持したい。したがって、ユーザーが入力するとします
送信をヒットします。それを問題なくデータベースに入力し、後で投稿に表示できるようにしたいと考えています。
PHPタグなどを取り除きたい:
それでも意味がわからない場合は、もう少しうまく説明できるように最善を尽くします。
php - encodeURIComponentおよびmysql_real_escape_string
mysql_real_escape_string()
データが関数を使用してJSファイルにエンコードされている場合、PHPajaxファイルでDBに送信するデータにPHP関数を使用する必要があるかどうかを尋ねますencodeURIComponent()
。ありがとう
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' の近くで使用する正しい構文を確認してください。
どうしたのかわからない?どんな助けでも大歓迎です。
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
これをしているのですか?
php - PHP/MYSQL を使用した電子メールの文字のエスケープ
mail()
PHPの関数を使用するときに、文字がどのようにエスケープされるかの背後にあるロジックを理解するのに問題があります。私は PHP 5.2 を使用しており、magic_quotes_qpc をオンにし、runtime/sybase をオフにしています。これが問題です。
テキスト入力を受け取るフォームがあり、次の
/li>mysqli_real_escape
ような SQL ステートメントで使用するために特殊文字をエスケープするために使用します。次のコメントを入力すると、「私はそれを食べません!」フォームに入力すると、データベースに次のように表示されます-「私はそれを食べません!」、これは私が期待するものです. キャリッジ リターン/改行を追加すると、phpMyAdmin のデータベース フィールドに表示されるのは、特殊文字のないキャリッジ リターンと改行だけです (つまり、"\r\n" などはありません)。
関数を使用し
/li>mail
てメッセージを送信すると (つまりmail($to, $subject, $text, $headers)
)、電子メールの本文に次のような奇妙なものが表示されます。
結局のところ、メール出力をフォーム入力とまったく同じようにフォーマットしたいだけです。つまり、次のようになります。
アポストロフィの前にトリプル エスケープがある理由と、\r\n がメールに表示される理由がわかりません。