CSRF คืออะไร?
CSRF (การปลอมแปลงคำขอข้ามไซต์), ชื่อภาษาจีน: การปลอมแปลงคำขอข้ามไซต์หรือที่รู้จักกันในชื่อ: การคลิกการโจมตีครั้งเดียว/การขี่เซสชันตัวย่อ: CSRF/XSRF
CSRF ทำอะไรได้บ้าง?
คุณสามารถเข้าใจการโจมตี CSRF เช่นนี้: ผู้โจมตีขโมยตัวตนของคุณและส่งคำขอที่เป็นอันตรายในชื่อของคุณ สิ่งที่ CSRF สามารถทำได้รวมถึง: การส่งอีเมลการส่งข้อความขโมยบัญชีของคุณและแม้แต่การซื้อสินค้าโอนเงินจากสกุลเงินเสมือนจริง ... ปัญหาที่เกิดขึ้น ได้แก่ : การรั่วไหลของความเป็นส่วนตัวและความปลอดภัยของทรัพย์สิน
สถานะปัจจุบันของช่องโหว่ CSRF
วิธีการโจมตี CSRF ได้รับการเสนอโดยเจ้าหน้าที่รักษาความปลอดภัยต่างประเทศในปี 2000 แต่ก็ไม่ได้จนกว่าปี 2549 จะได้รับความสนใจในประเทศจีน ในปี 2008 ช่องโหว่ CSRF ได้รับการเปิดเผยในชุมชนขนาดใหญ่หลายแห่งและเว็บไซต์เชิงโต้ตอบทั้งที่บ้านและต่างประเทศเช่น: nytimes.com (นิวยอร์กไทม์ส), Metafilter (เว็บไซต์บล็อกขนาดใหญ่), YouTube และ Baidu HI ... ตอนนี้หลายไซต์บนอินเทอร์เน็ต
ในโครงการสปริงบูตจำเป็นต้องมีการโจมตี CSRF และสามารถแนะนำตัวกรองที่เกี่ยวข้องในการรักษาความปลอดภัยในฤดูใบไม้ผลิเท่านั้น
เพิ่มการพึ่งพาที่เกี่ยวข้องใน POM
<การพึ่งพา> <การพึ่งพา> <roupId> org.springframework.boot </groupId> <ratifactid> Spring-Boot-Starter-FreeMarker </artifactid> </การพึ่งพาอาศัย> <!-ความปลอดภัย (ใช้สำหรับการป้องกัน CSRF เท่านั้น)-> <การพึ่งพา> <ArtIfactId> Spring-Security-WEB </artifactId> </dermentency> </derdency> </dependencies>
เพิ่ม csrffilter เมื่อแอปเริ่มต้น
@springbootapplicationpublic คลาสแอปพลิเคชันขยาย WebMVCCONFigurerAdapter {@Bean Public FilterRegistrationBean CSRFFILTER () {การลงทะเบียน FilterRegistrationBean = FilterRegistrationBean () ใหม่ (); ลงทะเบียน SetFilter (CSRFFILTER ใหม่ (ใหม่ httpsessioncsrftokenrepository ())); ลงทะเบียน. addurlpatterns ("/*"); การลงทะเบียนคืน; } โมฆะคงที่สาธารณะหลัก (สตริง [] args) {springapplication.run (application.class, args); -เพิ่มเขตข้อมูลที่ซ่อนอยู่ของ CSRF ในรูปแบบ
<input name = "$ {(_ csrf.parameterName)!}" value = "$ {(_ csrf.token)!}" type = "ซ่อน">การเพิ่มส่วนหัวของ CSRF ใน AJAX
xhr.setRequestheader ("$ {_ csrf.headername}", "$ {_ csrf.token}");ที่อยู่ GitHub คือ https://github.com/kabike/spring-boot-csrf
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น