0gajun / 2018-newbies

1 stars 1 forks source link

CSRFできそう? -> 出来てしまったので防ぐ #15

Closed 0gajun closed 6 years ago

0gajun commented 6 years ago

ActipnController::Api はcsrfトークンの検証とかは無いので、CSRF対策をどうにかする必要がアリそう

0gajun commented 6 years ago

https://qiita.com/maruloop/items/e14d02299bd136f4b1fc

0gajun commented 6 years ago

http://watanabe-tsuyoshi.hatenablog.com/entry/2015/03/04/123649

0gajun commented 6 years ago

POSTのところで Origin ヘッダと Referrer をチェックすれば大丈夫になるのか?

0gajun commented 6 years ago

トークン適切に発行してうんぬんみたいなところは、あと一週間で適切にやるのしんどい気がしている

(俺があんまフロントいじりたくないという話もある

0gajun commented 6 years ago

本番環境でログインした状態で、 http://localhost:3000/404.html で下のスクリプト実行したら見事accept出来てしまった 👿

<script>
    var xhr = new XMLHttpRequest();
    xhr.withCredentials = true;
    xhr.open('POST', 'http://app-squirrel-2041065676.ap-northeast-1.elb.amazonaws.com/api/remit_requests/1/accept')
    xhr.send()
</script>
0gajun commented 6 years ago

上の記事でOrigin チェックして対処する話があって、でも攻撃者がセットしてきたらやばいな? 🤔

と思っていたら、Originはユーザーエージェントしかセットできないらしいのでヨサソウ 🙆

Forbidden header name

0gajun commented 6 years ago

OWASPの 👇 に従ってorigin checkすれば良い気がする。

Verifying_Same_Origin_with_Standard_Headers