Skip to content

Instantly share code, notes, and snippets.

@wilfrem
Created August 10, 2013 16:55
Show Gist options
  • Save wilfrem/6201158 to your computer and use it in GitHub Desktop.
Save wilfrem/6201158 to your computer and use it in GitHub Desktop.
ServiceStackのAuthPlugin(AuthFeature)でうっかりオープンリダイレクタ脆弱性を作らないようにする方法
AuthPluginは/authがContinueパラメータを受け取り、認証後はContinueパラメータで指定されたURLにリダイレクトする設計になっています
そして、Continueはホストも含めたフルURLを指定するため、オープンリダイレクタになってしまう危険性があります
対処法としては
AuthServiceクラスはstaticプロパティとしてValidateFnを持っており、これにdelegateをセットすると認証前にValidateFnにセットしたdelegateが呼び出されるようになります
なので、ValidateFnに入れるdelegateでContinueをチェックするようにし、ホワイトリストに無いhostを指定されたらリダイレクトせずに400/404を投げれば良い
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment