問題タブ [taint]
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.
svg - SVG の描画後に Canvas が「汚染」される
同様の質問が寄せられており、問題の理由はよく理解されています。私が求めているのは、代替手段または回避策です。
私がやりたいのは、SVG ドキュメントが描画されているキャンバスからデータ URL を取得することです。私はあらゆる種類のことを試しましたが、IE9 と Chrome では、SVG がそのキャンバスの近くに来るとすぐにその URL を取得できません。
私はもう試した:
- Canvg (必要なものすべてをサポートしているわけではありません)
- svgファイルをキャンバスに直接描画 (content.drawImage(svg, 0 0))
- svg ドキュメント全体の base64 文字列を作成し、それを のソースにして、その画像をキャンバスに描画します。
- svg をファイルに保存し、(同じドメイン上の) ファイルを指すように src 属性を設定し、それをキャンバスに描画します。
私はアイデアが不足しています。
svg をラスタライズする同様のライブラリを試すことができますか? キャンバスがSVGが関係していることを決して知らないように、描画する前にSVGを変換できる何か他のものがありますか? PHPなどを使用してサーバー側で変換を行う本当に簡単な方法はありますか?
perl - 内部Webサイトに「taint」モードが必要ですか?
私がサポートするためにやってきた中規模の内部専用Webサイトには、「taint」モードのない*.cgiファイルの約1/2があります。内部Webサイトに「taint」モードが必要ですか?
macos - 汚染モードでのファイル読み取りエラー
私は汚染モードを使用しようとしています。ユーザー入力に基づいてファイルを開き、ファイルを開いてデータを読み取りたい。以下は私のコードです
ケース 1) perl -w filename.pl input.txt を使用してファイルを実行すると、ファイルからデータを読み取ることができます。
ケース 2)
perl -T filename.pl input.txt を使用してファイルを実行します。まだデータを読み取ることができます。
ケース3)書き込みモードで開くようにファイルを変更し、汚染されたモードで実行すると、次のように正しい出力が得られます。
ケース 2 のシナリオで何が問題になる可能性がありますか? それともそれは正しい行動ですか?
ファイルを読み取り用に汚染モードで開くことは許可されていますか?
android - 文字列の汚染検証
AndroidのIMEIを抽出して文字列に保存するアプリケーションを開発しました.Eclipseを使用してこの文字列が汚染されているかどうかを確認するには、次のように「getTaintString」を使用しました。
しかし、次のエラーが発生します。
汚染は解決できません
助言がありますか?
perl - DBI::db=HASH(0xa32bd40) のパラメーター 3 でエラーを表示する安全でない依存関係 -> -T スイッチで実行中にメソッド呼び出しを行う
ファイル show_bug.cgi を変更しているときに、DBI::db=HASH(0xa32bd40)->do method call while running with -T switch というエラーが発生しました
理由は何ですか?
java - Java プログラムの静的汚染分析
ここで質問するのが適切かどうかわかりませんが、助けていただければ幸いです。Java 用の静的汚染分析ツールを作成したいと考えています。私の理解では、ツールはメイン エントリ ポイントから始まるすべての Java ファイルをスキャンします。ソース コードの各行をデコードし、必要なアクションを実行します。
例えば、
行 1 で 1 つのブール変数を宣言し、行 2 でそれを文字列に変換します。行 1 では、ブール変数 'x' が宣言されており、行 2 で文字列に変換されていることがわかります。そして、toString() 関数にチェックを入れて必要なアクションを実行した場合にのみ、私のツールはそれを理解します。
私の質問は、Java でブール型に対して定義されたすべての関数のチェックを記述する必要があるかということです。他のデータ型や他のライブラリ関数はどうですか?
たとえば、ブール型に使用できる他の関数のいくつかは次のとおりです。
regex - 正規表現による Perl 汚染
短縮版
以下のコードでは、$1
が汚染されており、その理由がわかりません。
ロングバージョン
汚染チェックモードが有効になっている perl v5.14.2 のシステムで Foswiki を実行しています。-T
そのセットアップの問題をデバッグして、次の SSCCE を構築することができました。(私がこの投稿を編集したことに注意してください。最初のバージョンはより長く、より複雑でした。コメントはまだそれを参照しています。)
入力文字列$var
は汚染されておらず、正規表現は修正されていますが、結果のキャプチャ グループ$1
は汚染されています。本当に奇妙だと思います。
perlsec のマニュアルには、汚染と正規表現について次のように書かれています。
値は、ハッシュのキーとして使用することで汚染されていない可能性があります。それ以外の場合、汚染メカニズムをバイパスする唯一の方法は、正規表現の一致からサブパターンを参照することです。Perl は
$1
、$2
、 などを使用して部分文字列を参照する場合、パターンを書いたときに何をしていたかを知っていると想定します。
入力が汚染されていたとしても、出力はまだ汚染されていないと思います。逆に、汚染されていない入力からの汚染された出力は、perl の奇妙なバグのように感じられます。しかし、perlsec をもっと読むと、ユーザーは perllocale の SECURITY セクションに誘導されます。そこには次のように書かれています。
use locale が有効な場合、Perl は汚染メカニズム (perlsec を参照) を使用して、文字列の結果がロケールに依存するようになり、結果的に信頼できない可能性があることをマークします。ロケールによって影響を受ける可能性のある演算子と関数の汚染動作の概要を次に示します。
比較演算子 (
lt
、le
、ge
、gt
およびcmp
) […]ケースマッピング補間 (
\l
、\L
、\u
または\U
) […]一致演算子 (
m//
):スカラーの true/false の結果が汚染されることはありません。
use locale
$1
( but notuse locale ':not_characters'
) が有効で、サブパターンの正規表現に\w
(英数字と一致するため)、\W
(英数字以外の文字)、\s
(空白文字)、または\S
(非空白文字)。use locale が有効で、正規表現に、、、またはが含まれている場合、matched-pattern 変数 、$&
($`
一致前)、$'
(一致後)、および$+
(最後の一致) も汚染されます 。\w
\W
\s
\S
置換演算子 (
s///
) […][⋮]
これは完全なリストであるように見えます。そして、それがどのように適用されるかわかりません。私の正規表現は\w
、\W
、\s
または\S
を使用していないため、ロケールに依存するべきではありません。
このコードが varibale を汚染する理由を誰かが説明できますか$1
?