You don't have javascript enabled. Good luck! :(

hamlet とインライン Javascript

最終更新日: 2018/08/04

関連情報

脆弱性を含むコード

例えば http://localhost:3000/?name=%27),alert(1)// にアクセスすると alert が実行されてしまう。

対策

方法1 インラインをやめる

julius に全部書く。

潜在的にではあるが、脆弱性は存在しているので、推奨はしない。(実装者によっては知らずに書いてしまうかもしれない)

方法2 Content Security Policy の設定

Content Security Policy を設定してインラインの JavaScript を禁止する。

方法3 明示的に javascript のエスケープを行う

rails の escape_javascript を参考に自前でエスケープ処理を実装する。

今のところ、Yesod はそのような関数を提供していない。

ちなみに、以下のようにしても、やはり脆弱性は存在している。(内部関数の string ではエスケープ処理が不十分なため)