-1

div 要素を含む単純な html ページがあります。div の innerHTML プロパティは、クエリ文字列を介して設定されます。クエリ文字列では、html文字列を渡します。

<p style='font-size:20px;color:green;'> Sun rises in the east </p> etc...

適切な出力が得られます。

ただし、スタイル属性でカラーコードを渡すと、たとえば #00990a と表示されません。

誰かがこれを通して私を助けることができますか?

4

2 に答える 2

0

あなたは私たちにコードを見せていないので、私は推測します…</p>

URI では#、フラグメント識別子?の開始を示します (クエリ文字列の開始を示すように)。あなたの色はクエリ文字列を終了し、フラグメント識別子を開始します。URL で特別な意味を持つすべての文字を URL エンコードする必要があります。(#%23) です。


ただし、サーバー上で渡された HTML と CSS を必ずサニタイズしてください。それ以外の場合、XSS 攻撃にさらされるのは非常に簡単です。

于 2012-05-05T07:29:44.930 に答える
0

を含むカラーコードがある場合、#それ以降のすべてがフラグメント識別子として扱われます。これを回避するには、パラメーター値を URL エンコードする必要があります ( d に置き換え#%23特別な意味を持つ他の文字 ( @&%=?#...) で同じことを行います)。

最後に、URL は次のようになります。

PageUrl?Content=%3Cp+style%3D%27color%3A%23009900%27%3EContent%3C%2Fp%3E
于 2012-05-05T07:33:37.417 に答える