å
³äºé²å¾¡æ¹æ¡ï¼ä¸è¬æå¦ä¸å ç§ï¼
1ï¼ç¨æ·æä½éªè¯ï¼å¨æ交æ°æ®æ¶éè¦è¾å
¥éªè¯ç
2ï¼è¯·æ±æ¥æºéªè¯ï¼éªè¯è¯·æ±æ¥æºçreferer
3ï¼è¡¨åtokenéªè¯
ç°å¨ä¸ç对CSRFçé²å¾¡ï¼ä¸è´çåæ³æ¯ä½¿ç¨ä¸ä¸ªTokenï¼Anti CSRF Tokenï¼ã
è¿ä¸ªTokençå¼å¿
é¡»æ¯éæºçï¼ä¸å¯é¢æµçãç±äºTokençåå¨ï¼æ»å»è
æ æ³åæé ä¸ä¸ªå¸¦æåæ³Tokenç请æ±å®æ½CSRFæ»å»ãå¦å¤ä½¿ç¨Tokenæ¶åºæ³¨æTokençä¿å¯æ§ï¼å°½éææææä½ç±GETæ¹ä¸ºPOSTï¼ä»¥formæAJAXå½¢å¼æ交ï¼é¿å
Tokenæ³é²ã
ä¾åï¼
第ä¸æ¥ï¼ç¨æ·è®¿é®æ个表å页é¢ã
第äºæ¥ï¼æå¡ç«¯çæä¸ä¸ªTokenï¼æ¾å¨ç¨æ·çSessionä¸ï¼æè
æµè§å¨çCookieä¸ã
第ä¸æ¥ï¼å¨é¡µé¢è¡¨åé带ä¸Tokenåæ°ã
第åæ¥ï¼ç¨æ·æ交请æ±åï¼æå¡ç«¯éªè¯è¡¨åä¸çTokenæ¯å¦ä¸ç¨æ·Sessionï¼æCookiesï¼ä¸çTokenä¸è´ï¼ ä¸è´ä¸ºåæ³è¯·æ±ï¼ä¸æ¯åéæ³è¯·æ±ã
4) å¨åå端å离çåæä¸ï¼ä¾å¦ä½¿ç¨ajaxæ交æ°æ®ï¼è®¾ç½®ä¸äºtokenï¼å¯ä»¥ç» cookie æ°å¢ SameSite å±æ§ï¼éè¿è¿ä¸ªå±æ§å¯ä»¥æ è®°åªä¸ª cookie åªä½ä¸ºåç« cookie ï¼å³ç¬¬ä¸æ¹ cookieï¼ä¸è½ä½ä¸ºç¬¬ä¸æ¹ cookieï¼ï¼æ¢ç¶ä¸è½ä½ä¸ºç¬¬ä¸æ¹ cookie ï¼é£ä¹å«çç½ç«å起第ä¸æ¹è¯·æ±æ¶ï¼ç¬¬ä¸æ¹ç½ç«æ¯æ¶ä¸å°è¿ä¸ªè¢«æ è®°å
³é® cookieï¼åé¢ç
é´æå¤ç就好åäºãè¿ä¸åé½ä¸éè¦å token
çå½å¨æç管çï¼ä¹ä¸ç¨æ
å¿ Referer ä¼ä¸¢å¤±æ被ä¸é被篡æ¹ã
SameStie æ两个å¼ï¼Strict å Lax:
SameSite=Strict ä¸¥æ ¼æ¨¡å¼ï¼ä½¿ç¨ SameSite=Strict æ è®°ç cookie å¨ä»»ä½æ
åµä¸ï¼å
æ¬å¼æ¥è¯·æ±ååæ¥è¯·æ±ï¼ï¼é½ä¸è½ä½ä¸ºç¬¬ä¸æ¹ cookieã
SameSite=Lax 宽æ¾æ¨¡å¼ï¼ä½¿ç¨ SameSite=Lax æ è®°ç cookie å¨å¼æ¥è¯·æ± å form æ交跳转çæ
åµä¸ï¼é½ä¸è½ä½ä¸ºç¬¬ä¸æ¹ cookieã