CSRFとは何ですか?
CSRF(クロスサイトリクエスト偽造)、中国語名:クロスサイトリクエスト偽造、ワンクリック攻撃/セッションライディング、略語:CSRF/XSRF。
CSRFは何ができますか?
このようなCSRF攻撃を理解できます。攻撃者はあなたの身元を盗み、あなたの名前で悪意のあるリクエストを送信しました。 CSRFにできること:電子メールの送信、メッセージの送信、アカウントの盗み、さらには商品の購入、仮想通貨からの送金...問題が発生した問題:個人のプライバシー漏れと不動産セキュリティが含まれます。
CSRFの脆弱性の現在のステータス
CSRF攻撃方法は2000年に外国人の治安要員によって提案されましたが、2006年まで中国で注意を払わなくなり始めました。 2008年、CSRFの脆弱性は、Nytimes.com(New York Times)、Metafilter(大規模なブログWebサイト)、YouTube、Baidu Hi ...など、自宅および海外の多くの大規模なコミュニティやインタラクティブなWebサイトで公開されました。
スプリングブートプロジェクトでは、CSRF攻撃を防ぐ必要があり、Spring Securityの関連フィルターのみを導入できます。
POMに関連する依存関係を追加します
<Dependencies> <Dependency> <GroupId> org.springframework.boot </groupid> <artifactid> spring-boot-starter-freemarker </artifactid> </dependency> <! - セキュリティ(CSRF保護のみに使用) - > <依存関係> <groupid> <artifactid> spring-security-web </artifactid> </dependency> </dependency> </dependencies>
アプリの起動時にcsrffilterを追加します
@springBootApplicationPublicクラスアプリケーションextends webmvcconfigureradapter {@bean public filterregistrationbean csrffilter(){filterregistrationbean登録= new filterregistrationbean();登録.setfilter(new csrffilter(new httpsessioncsrftokenRepository()));登録.addurlpatterns( "/*");登録を返します。 } public static void main(string [] args){springApplication.run(application.class、args); }}CSRFの隠されたフィールドをフォームに追加します
<入力名= "$ {(_ csrf.parametername)!}" value = "$ {(_ csrf.token)!}" type = "hidden">AjaxにCSRFのヘッダーを追加します
xhr.setRequestheader( "$ {_ csrf.headername}"、 "$ {_ csrf.token}");githubアドレスはhttps://github.com/kabike/spring-boot-csrfです
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。