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

php - PHPを使用してSQLServerで文字列をエスケープする方法は?

SQLServerの代替手段を探していmysql_real_escape_string()ます。私の最善の選択肢ですかaddslashes()、それとも使用できる別の代替機能がありますか?

の代替手段mysql_error()も役立ちます。

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

filter - PHPでのユーザー入力のフィルタリング

$_GET および $_POST から変数の値をフィルタリングするには、trim()、strip_tags()、および addslashes() の組み合わせで十分かどうか疑問に思っています。

0 投票する
5 に答える
23514 参照

mysql - PerlのDBIを使用してSQLインジェクション攻撃から保護するにはどうすればよいですか?

MySQLデータベースに入力する前に入力をサニタイズするためにPerlで使用できる関数はありますか?正規表現はよくわからないので、自分で関数を作成する前に、すでに正規表現が作成されているのではないかと思っていました。

0 投票する
7 に答える
7076 参照

php - preg_match は入力サチナイゼーションで十分安全ですか?

私は新しいWebアプリ、LAMP環境を構築しています...すべてのテキストベースのフィールド(HTMLフィールドではなく、電話、名前)のユーザーの入力検証(もちろん+準備されたstmt)に対してpreg_matchが信頼できるかどうか疑問に思っています、姓など)。

たとえば、従来の「メール フィールド」の場合、入力を次のようにチェックすると、次のようになります。

SQL/XXS インジェクションに対して安らかに眠ることができますか?

私は正規表現を可能な限り制限的に書いています。

編集:すでに述べたように、私はすでに準備済みのステートメントを使用しています。この動作はテキストベースのフィールド(電話、電子メール、名前、姓など)専用であるため、HTMLを含めることはできません(HTMLフィールドの場合) 、私は HTMLpurifier を使用します)。

実際、私の使命は、regexp-white-list と一致する場合にのみ入力値を渡すことです。それ以外の場合は、ユーザーに戻します。

ps :: mysql_real_escape_strings のないものを探しています。おそらくプロジェクトは次の将来に Postgresql に切り替わるので、クロスデータベースの検証方法が必要です ;)

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

php - PHP入力サニタイザー?

いくつかの優れた PHP html (入力) サニタイザーは何ですか?

できれば、何かが組み込まれている場合は、それを希望します。

更新

要求に従って、コメントを介して、入力はHTML を許可しないでください(そして明らかに XSS と SQL インジェクションなどを防ぎます)。

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

php - ユーザーがフォーマットした入力をサニタイズし、XHTML Strict に準拠させる PHP ソリューション

ユーザー形式の入力を作成するための最良のソリューションは何ですか

  1. 安全+スクリプト/フラッシュフリー
  2. XHTML Strict 準拠

Tidyは HTML を XHTML Strict に変換します。これに加えて、埋め込まれたスクリプトとフラッシュをサニタイズして削除する同様の/代替オプションはありますか?

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

winforms - .Net winforms アプリケーション全体で入力を制限された文字セットに制限するにはどうすればよいですか。(vb.net/c#)

私が働いている会社には、途方もなく古いデータベース システムと、ASCII 以外の文字に遭遇したときにハード エラーをスローする多くのレガシー アプリがあります。

これらのアプリを廃止する必要があることに気付いたので、vb.net WinForms アプリでバックエンドをラップし始め、これらの古いシステムを 1 年半ラップした後、このバグを発見しました。

彼らは問題を解決するために私を雇った. :(

多くの場合、UI は、DevExpress などのサード パーティのデータ バインディングと FormView 風のソリューションを使用して構築されました。その結果、UI を分解し、次のような中間ユーティリティ関数を使用して再構成するには、多くの作業が必要になります。

アプリケーションの CultureInfo (またはその他のプロパティ) をハックして、すべてのテキスト ボックスがネイティブで ASCII のみを処理できるようにする方法を探しています。これは、多くの Web ブラウザーが示す動作と同様です。

また、メモとして: テキスト入力の多くは dev Express から取得されるため、使用されているテキスト ボックスもラップされます。

Forms の ControlAdded イベントにアタッチして、ASCII または utf-8/utf-7 のみを処理するようにコントロールを設定する方法はありますか?

誰かがこれに遭遇したに違いありません。私が導入できる恐ろしいハックがなければ、これらのアプリをすべて修正するには 2 年かかります。

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

php - NSStringのエスケープ文字

問題が発生しました。NSStringがあり、この文字列をサーバーに送信してデータベースに挿入したいと思います。しかし、NSStringが(たとえば)の場合、問題が発生します。

これは学生ではありません。

そして、この文字列は次のスクリプトでサーバー側に送信されます。

" isn't"の部分があるため、挿入クエリは実行できず、失敗します。

ここで、文字をエスケープしたいと思います。つまり、データベースに挿入できるように、isn't「」が「」になります。isn\'tどうすればいいですか?

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

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

javascript - JavaScript ベースの X/HTML & CSS サニタイズ

クライアント側のサニタイズを行うべきではないと誰もが私に言う前に (SSJS でも機能する可能性がありますが、実際にはクライアントで行うつもりです)、私が何をしようとしているのかを明確にさせてください。

Google CajaHTMLPurifierに似たものですが、JavaScript の場合: HTML と CSS を処理するホワイトリスト ベースのセキュリティ アプローチ (もちろん、まだ DOM に挿入されていないため、安全ではありませんが、最初に文字列形式で取得されます)次に、安全でないタグまたは属性を選択的に除外し、それらを無視するか、オプションでエスケープされたテキストとして含めるか、理想的にはコンテキストで、さらに処理するためにそれらをアプリケーションに報告できるようにします。Google Caja のように、JavaScript を安全なサブセットに減らすことができれば素晴らしいと思いますが、それでは多くのことが求められることはわかっています。

私のユース ケースは、 JSONP経由で取得した信頼できない XML/XHTML データ(Wiki 処理前の Mediawiki ウィキからのデータ。これにより、未加工の信頼できない XML/HTML 入力を許可する) にアクセスし、ユーザーがそのデータ (XQuery、jQuery、 XSLT など)、HTML5 を利用してオフラインでの使用、IndexedDB ストレージなどを可能にし、ユーザーが入力ソースを表示してクエリを作成またはインポートした同じページで結果をプレビューできるようにします。

ユーザーは自分が望む出力を生成できるので、ユーザーが行っていることをサニタイズするつもりはありません。JavaScript をページに挿入したい場合は、すべての権限がユーザーに与えられます。しかし、安全でない入力をコピーすることを禁止しながら、信頼できない入力から対象の要素を安全にコピーするコードを追加できるという自信を持ちたいユーザーを保護したいと思います。

これは間違いなく実行できるはずですが、すでにこれを行っているライブラリがあるかどうか疑問に思っています。

innerHTMLそして、これを自分で実装するのに行き詰まっている場合 (どちらの場合も興味があります)、ドキュメントへの挿入前に DOM の作成/追加を使用することがあらゆる点で安全であるかどうかを証明したいと思います。たとえば、生の HTML を挿入されていない div に追加するためにDOMParser使用して、ブラウザーの HTML 解析を最初に実行または依存した場合、イベントが誤ってトリガーされる可能性はありますか? innerHTML私はそれが安全であるべきだと信じていますが、悪用される可能性のある挿入の前にDOM操作イベントが何らかの形で発生する可能性があるかどうかはわかりません.

もちろん、構築された DOM はその時点でサニタイズする必要がありますが、トラバーサルを容易にするために DOM オブジェクト自体を安全に構築できることを確認し、不要な要素、属性、および属性値を除外することについて心配したいだけです。

ありがとう!

0 投票する
5 に答える
2709 参照

php - 管理者向けのフォーム入力のサニタイズ

私のサイトの管理領域では、データベースに入力されるフォーム入力を取得するときにmysqli_real_escape_stringを使用しています。正常に動作しますが、スクリプトの挿入を防ぐことはできません。つまり、次のようなスクリプトをパススルーできます。

悪意のある管理者が厄介なものを注入するのを防ぐために、これに加えて何を使用しますか?

  • htmlentities()
  • strip_tags()
  • htmlspecialchars()

入力データにhtmlが必要ないバックエンドフォームでフォーム入力をサニタイズする適切な方法は何ですか?私は混乱しています?