問題タブ [input-sanitization]

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 投票する
3 に答える
881 参照

mysql - ODBCデータベース入力をサニタイズする方法は?

私は現在MySqlを使用していますが、将来にわたって利用できるようにするためにODBCソリューションを使用したいと考えています。

ODBCデータベースに渡す前にユーザー入力をサニタイズするにはどうすればよいですか?

そして、その間、文字列を二重引用符で囲みます。たとえば、 "INSERT INTO VALUES(description)" "`ですが、テキスト自体に二重引用符が含まれている場合はどうなりますか?

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

magento - プログラムで設定されたSQLエスケープ/サニタイズMagentoアイテム属性値データ?

ユーザーが提供したデータにプログラムでMagentoアイテム属性を設定する場合、そのデータをSQLエスケープ/サニタイズする必要がありますか、それともMagentoがそれを処理しますか?

-コード例は次のとおりです。

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

java - ここで最も適切な例外はどれですか?

ユーティリティメソッドでRestletURLからの入力を検証しています(そうすれば、実行する動作が変更された場合、1か所だけ変更します)。LegalNameは、基本的に値がalphaNumericであることを検証しますが、他の文字をすぐに許可する可能性があります。

私は自分の例外を意味のあるものに保つようにしています-このシナリオではどの例外が最適でしょうか?

私の考えは次のとおりです。

  • IllegalArgumentException-キーが直接無効な結果につながる
  • IllegalStateException-不適合な値を使用しようとしています
  • 例外なし-空の文字列を返し、違反があったという事実をログに記録します
  • 例外なし-不要な文字を削除し、サニタイズされた文字列を返し、事実をログに記録します

確かに私は前に入力を検証しなければならない最初の人ではありません:-)

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

php - PHP でのユーザー入力の検証とサニタイズ

変数をフィルタリングおよびサニタイズするために PHP を使用filter_var()して提供することはベスト プラクティスと見なされますか、それともより良いオプションはありますか?sanitize_var()

ありがとうございました。

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

php - ? の後の情報の確保 は整数です

HTML から PHP コーディングに移行したので、ニュース ページのリンクを作成するときに、HREF を使用して行の ID をリンクとして取得し、記事のタイトルを表示可能/クリック可能なリンクにしました。

そのため、誰かがタイトルをクリックすると記事にリダイレクトされ、アドレス バーは次のようになります (明らかにこれは例です): http://site.com/news.php?id=1

の後の情報を検証するにはどうすればよいですか? id=int (常に数値) であり、サイトに損害を与える可能性のあるユーザー コードやその他の入力ではありませんか? コードをサニタイズ/検証する方法を見てきましたが、見つかったすべての例は、単に住所が有効であることを確認するのではなく、住所で使用されるフォームに情報を入力することに関するものでした。支援のために。ありがとう

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

php - php - preg_replace_callback と ord() を使用してユーザー入力をクリーンアップしますか?

フォーラム スタイルのテキスト ボックスがあり、ユーザー入力をサニタイズして xss やコードの挿入を防止したいと考えています。私は htmlentities が使用されているのを見てきましたが、他の人は &,#,%,: 文字もエンコードする必要があると言っており、見れば見るほど潜在的に危険な文字がポップアップするようです. ^a-zA-z0-9 以外にも有効なテキスト オプションが多数あるため、ホワイトリスト登録には問題があります。私はこのコードを思いつきました。攻撃を阻止し、安全を確保するために機能しますか? それを使用しない理由、またはより良い方法はありますか?

編集: _ _ _ _ _ _ _ __ _ _ __ _ _ ____ _ _ _ もちろん間違っている可能性もありますが、htmlentities は & < > " (および ENT_QUOTES がオンになっている場合は ' のみ) を置き換えることを理解しています。これはおそらく、ほとんどの攻撃を阻止するのに十分です (率直に言って、トラフィックの少ないサイトにはおそらく十分すぎるでしょう)。 . しかし、細部への執拗な注意の中で、私はさらに掘り下げました. 私が持っている本は、「六角攻撃をシャットダウンする」ために # と % もエンコードするように警告しています.英数字以外のすべての文字を変換することを検討するようになりました. htmlentities がこれをすでに実行している場合は、素晴らしいことですが、そうではないようです. これは、Firefox で [ソースを表示] をクリックした後にコピーした、実行したコードの結果です.

オリジナル (テストするランダムな文字): 5: gjla#''*&$!jl:4

preg_replace_callback: <b>5:</b>gjla<hi>#''*&$!jl:4

htmlentities (w/ ENT_QUOTES): <b>5:</b>gjla<hi>#''*&$!jl:4

htmlentities は、次のような他の文字をエンコードしていないようです: テキストの壁で申し訳ありません。これは私が妄想しているだけですか?

編集#2:_ _ _ _ _ _ _ _

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

php - Adodb for PHP での SQL クエリの入力のサニタイズ

ADODBforPHPを使用するプラットフォームを最適化しています。以前のバージョンの PHP (mysql_escape_string) の sql インジェクションを回避するサニタイズ関数を使用しましたが、これは明らかにサポートも推奨もされていません。

ライブラリを使用していない場合は、次のようになります。

一部の行を更新する場合の例:

この場合、q($string)はサニタイズ関数であり、これを改善しようとしています。このサーバーに PDO をインストールするアクセス権がないため、これはオプションではありません。

現在の q() は、2 番目の引数なしで mysql_real_escape_string を使用します。

誰かが別のフォーラムでfilter_var ($value, FILTER_SANITIZE_STRING) を推奨していましたが、正直なところ、これらの問題にそれを使用したことはありません。

この関数の目的のセキュリティを向上させる方法に関する推奨事項はありますか?

更新 1

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

jquery - textarea値のサニタイズ:すべての行の空白を削除します

textarea値をサニタイズするようにpasteイベントを設定しました。すべての行の最初と最後の空白を削除することを除いて、必要なことはすべて実行されています。何か案は?

ps:テキストが利用可能になる前にpasteイベントが発生するため、 benalmanのdoTimeoutプラグインを使用しています。

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

android - データベースのサニタイズ

phpやmysqlなどを使用してWeb上のデータベースでコーディングする場合、データをデータベースに挿入する前にデータをサニタイズして、誰かが引用符などをエスケープしないようにする必要があります。これはAndroidとMySQLiteで必要ですか?自動的に消毒されますか?それとも単に不要ですか?

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

ruby - Rails での入力の暗黙的なサニタイズ: API のこれらの例がそのように機能するのはなぜですか?

Ruby と Rails に足を踏み入れたので、助けてくれてありがとう。

ActiveRecord::Baseの Rails API には、 ActiveRecordとのやり取りの構文を簡単に説明することを目的とした条件に関するセクションがあります。しかし、彼らが使用した例には、Ruby/Rails での入力サニタイズに関する非常に興味深い (私にとって) 入門書が含まれています。

このコード例に続いて、彼らは次のように説明しています。

「authenticate_safely と authenticate_safely_simply は両方とも、クエリに挿入する前に user_name とパスワードをサニタイズします。これにより、攻撃者がクエリを回避してログインを偽造 (またはさらに悪いこと) できないようになります。」

インジェクション攻撃を防ぐ上で、この入力のサニタイズがいかに良いことか、私は完全に理解しています。私が理解していないのは、入力データを前処理するために呼び出される特別なメソッドがないことを考えると、この暗黙的なサニタイズがどこでどのように行われているかです。さまざまなメソッドの例は、ほぼ同じセマンティクスを持っているように見えますが、形式の違いは、解析方法が原因で安全性に大きな影響を与えます。これらの形式のバリエーションは、エスケープ文字を含む文字列を一重引用符と二重引用符で囲むことの違いと実質的に似ていると思います。しかし、これを実現するために内部で実際に何が起こっているのかを一般的な用語で (または、インタープリター内ではなく論理レベルで) 理解することで、より賢く、より速くなるのを手伝ってくれる人はいますか?

また、これらの違いは、基盤となる Ruby ではなく、Rails 固有の構造にどの程度依存しているのでしょうか?

ありがとうございました!