問題タブ [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.
xss - Markdown and XSS
Ok, so I have been reading about markdown here on SO and elsewhere and the steps between user-input and the db are usually given as
- convert markdown to html
- sanitize html (w/whitelist)
- insert into database
but to me it makes more sense to do the following:
- sanitize markdown (remove all tags - no exceptions)
- convert to html
- insert into database
Am I missing something? This seems to me to be pretty nearly xss-proof
php - PHP - コンマ区切りの文字列をサニタイズする
完全に数値で作成されたコンマ区切りの文字列であるユーザー入力をクリーンアップする最も効率的な方法は何ですか?
2,40,23,11,55
多くの入力でこの関数を使用します
そして、単純な整数では次のようにします:
それで、それを展開してから、配列のすべての要素を上記のコードでチェックするか、「、」のすべての出現箇所を「」に置き換えてから、全体が数値であることを確認する必要がありますか? 皆さんはどう思いますか?
mysql - テストで使用するための本番データベースのクリーニング
オンサイト開発を使用するのではなく、Web 開発を行うためのローカル vm を構築しています。ローカルにデータベースが必要ですが、実稼働データベースをプルダウンして使用したくありません。HIPAA などで保護されていないにもかかわらず、ラップトップの盗難時に利用できないはずの情報が含まれているためです。このデータをサニタイズして、データベースをプルダウンし、クリーンアップして、VM にインストールできるようにするためのアプリや推奨される方法はありますか?
明確化: 私が本当に探しているのは、特定の列を機密としてマークし、DB の新しいコピーをインポートするたびにそれらの列を強打できるアプリです。
php - PHP / MYSQL:ユーザー入力のサニタイズ-これは悪い考えですか?
要求された他のスクリプトをフェッチする「go」スクリプトが1つあります。これは、ユーザー入力をサニタイズするために作成したものです。
私は他の誰もこのアプローチを使用しているのを見たことがありません。そうしない理由はありますか?
編集-配列で機能するように修正されました:
php - 単純なPHP$_GETサニタイズの質問
構造が常にZZZZ111である7文字の英数字のテキスト文字列を取得し、MySQLクエリでそのレコードIDのすべての関連データをプルするために使用されるレコード編集リンクがあります。
mysql_real_escape_string()
これを消毒するために必要なのはすべてですか$_GET['id']
?または、データベースを保護するために実行する手順は他にもありますか?
python - makeValidFilename関数で発生する可能性のあるエラー?
これは、 「任意の文字列から有効なWindowsファイル名を作成する方法」に触発されています。、任意の文字列を取得して有効なファイル名にする関数を作成しました。
私の職務は技術的にはこの質問に対する答えになるはずですが、答えとして投稿する前に、愚かなことをしたり、見落としたりしていないことを確認したいと思います。
私はこれをtvnamerの一部として書きました-TVエピソードのファイル名を取得し、http://www.thetvdb.comから取得したエピソードを使用して、それらの名前を一貫して適切に変更します-ソースファイル名は有効なファイルである必要がありますが、シリーズ名前が修正され、エピソード名が修正されたため、理論的には両方に任意の文字を含めることができます。私は使いやすさほどセキュリティについては心配していません。これは主に、ファイルの名前が変更され.some.series - [01x01].avi
てファイルが「消える」のを防ぐためです(悪意のある人々を阻止するためではありません)。
それはいくつかの仮定をします:
- ファイルシステムはUnicodeファイル名をサポートしています。HFS +とNTFSはどちらもそうですが、これは大多数のユーザーを対象としています。Unicode文字を取り除くための引数もあり
normalize_unicode
ます(tvnamerでは、これは構成XMLファイルを介して設定されます) - プラットフォームはDarwin、Linuxのいずれかであり、その他はすべてWindowsとして扱われます
- ファイル名は表示されることを目的としています(のようなドットファイルではありません)-必要に応じて、ファイル名をフォーマット
.bashrc
できるようにコードを変更するのは簡単です.abc
私が(うまくいけば)扱ったこと:
- ファイル名がで始まる場合はアンダースコアを前に付けます(ファイル名とファイルが消え
.
ないようにします).
..
- ディレクトリセパレータを削除
/
します:LinuxおよびOSX/
の:
場合 - 無効なWindowsファイル名文字の削除
\/:*?"<>|
(Windowsの場合、または強制的にwindows_safe=True
) - 予約済みのファイル名の前にアンダースコアを付けます(
COM2
になる_COM2
、にNUL
なる_NUL
など) - Unicodeデータのオプションの正規化。これにより、変換不可能な文字が削除されます
å
。a
- Linux / Darwinでは255文字を超え、Windowsでは32文字を超えるファイル名の切り捨て
コードと一連のテストケースは、http: //gist.github.com/256270で見つけていじることができます。「本番」コードはtvnamer/utils.pyにあります。
この機能にエラーはありますか?私が逃した条件はありますか?
php - PHP でファイル パスをサニタイズする
こんにちは、私の小さなプログラムを安全にして、潜在的な悪意のあるユーザーがサーバー上の機密ファイルを表示できないようにしたいと考えています。
「../../../../../../etc/passwd」などの入力が問題になることは頭の中でわかっていますが、他にどのような悪意のある入力を想定し、どのように行うべきか疑問に思っています。それらを防ぐために。
php - PHPを使用してホワイトリストでHTMLを許可するにはどうすればよいですか?
PHPを使用してデータをフィルタリングする最良の方法については、何年にもわたって多くの議論があることを知っていますが、現在のプロジェクトではホワイトリストアプローチを採用したいと思います。
ユーザーが次のHTMLのみを使用できるようにしたい
PHPでのパフォーマンスのためにこれを行うための最良の方法を誰かに教えてもらえますか?私は過去にのみ、特定のコードを除いたすべてのhtmlを許可しました
code-analysis - CAT.NET「ファイル システム ルーチンに渡す前にファイル パスをサニタイズしてください」メッセージ
CAT.NET コード分析でコード (C#、デスクトップ アプリケーション) を分析していますが、ファイル名を処理するときに「ファイル パスをファイル システム ルーチンに渡す前にサニタイズしてください」というメッセージが表示されます。私が理解していないのは、ファイル名が有効であることを確認するために、次を使用することです。
無効なファイル名の問題を解決するのは「魔法の解決策」ではないでしょうか? ここで似たようなものを読みました(最初の回答)が、私の場合、ローカルファイルのみを扱っているので、非常に基本的なものです...
では、なぜこのメッセージが表示されるのでしょうか?また、表示されないようにするにはどうすればよいでしょうか?
ruby-on-rails - ユーザー正規表現のサニタイズ
ユーザーが正規表現に基づいてデータを照合できるようにする関数を書きたいのですが、ユーザー文字列のサニテーションが心配です。SQL クエリではバインド変数を使用して SQL インジェクション攻撃を回避できることは知っていますが、正規表現にそのようなメカニズムがあるかどうかはわかりません。Regexp.escapeがあることがわかりましたが、有効な正規表現を許可したいと思います。
サンプル関数は次のとおりです。
私は直接照合しているだけなのでtag.name
、誰かが Proc 呼び出しまたは何かを挿入して正規表現から抜け出して大混乱を引き起こす可能性はありますか?
ベストプラクティスに関するアドバイスをいただければ幸いです。