「FizzBuzzより実用的なプログラマ向け面接問題考えた」をJavaで解答
FizzBuzzより実用的なプログラマ向け面接問題考えた - <s>gnarl,</s>技術メモ”’<marquee><textarea>¥
コメント欄に投稿後、サニタイズとエスケープの違いから勉強しなおしました。要件はたぶん満たせてるはず。脆弱性みつけたら教えてください。
gistにうpしたコード
gistは簡単に公開できて、ヒストリーもみれるところが良いですね。
実行結果
mainメソッドに書いてあるのはテストコードです。HTMLを出力するようにしてあるので、それをブラウザで見ることで適切にエスケープされているかを確認します。
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <pre> リンク <a href="http://example.com/">http://example.com/</a> <a href="https://twitter.com/">https://twitter.com/</a> <a href="http://twitter.com/liquidfunc">@liquidfunc</a> こんにちはこんにちは!! <a href="http://twitter.com/#search?q=%23nicovideo">#nicovideo</a> hoge <>&"'<>&"'<>&"' <a href="http://twitter.com/javascript:alert('hello');">@javascript:alert('hello');</a> <script>alert('hello');</script> <script src="http://example.jp/malicious.js"> </pre> </body> </html>