laravel 419¹ýʧÔõô½â¾ö
µ±ÄãÔÚʹÓà laravel ¿ò¼Üʱ£¬ÓпÉÄÜ»áÓöµ½ http 419 ¹ýʧ£¬ÕâÊÇ laravel ¿ò¼ÜÖеÄÒ»ÖÖ csrf£¨¿çÕ¾ÇëÇóαÔ죩±£»¤»úÖÆ¡£±¾ÎĽ«ÏÈÈÝÓë´Ë¹ýʧÏà¹ØµÄÎÊÌâÒÔ¼°ÔõÑù½â¾öËü¡£
CSRF ÈÏÖ¤µÄ×÷ÓÃ
ÔÚÏÈÈÝ Laravel 419 ¹ýʧ֮ǰ£¬ÈÃÎÒÃÇÏÈÏàʶһÏ CSRF ÈÏÖ¤µÄ×÷Óá£Web Ó¦ÓóÌÐòÖÐµÄ CSRF ͨ³£ÊÇÖ¸¹¥»÷ÕßʹÓñ»¹¥»÷ÕߵĵǼ״̬£¬ÒÔÌᳫαÔìµÄ HTTP ÇëÇóÀ´Ö´ÐжñÒâ²Ù×÷¡£ÀýÈ磬¹¥»÷Õß¿ÉÒÔʹÓñ»¹¥»÷ÕßµÄÕË»§ÔÚij¸öÍøÕ¾ÉÏÖ´ÐÐÒâÍâµÄ²Ù×÷£¬ÈçÐû²¼À¬»øÐÅÏ¢¡¢¸ü¸ÄÃÜÂëµÈ¡£
CSRF ÈÏÖ¤µÄÄ¿µÄÊDZÜÃâÕâÖÖ¹¥»÷¡£ËüµÄÔÀíÊÇ£¬ÔÚÏòЧÀÍÆ÷·¢ËÍÇëÇóʱ£¬½«Ò»¸ö¼ÓÃÜµÄ token °üÀ¨ÔÚÇëÇóÖС£µ±Ð§ÀÍÆ÷ÊÕµ½ÇëÇóʱ£¬»áÑéÖ¤ token ÊÇ·ñÓëЧÀÍÆ÷´æ´¢µÄ token Ïàͬ¡£ÈôÊDzî±ð£¬Ð§ÀÍÆ÷»áÒÔΪÕâÊÇÒ»´ÎαÔìµÄÇëÇ󣬻á¾Ü¾øÇëÇó²¢½«ÆäÊÓΪ CSRF ¹¥»÷¡£
ÔÚ Laravel ¿ò¼ÜÖУ¬CSRF ÈÏÖ¤ÊÇĬÈÏ¿ªÆôµÄ¡£¿ò¼Üͨ¹ýÔÚÍøÒ³ÖаüÀ¨Ò»¸öÃûΪ _token µÄÒþ²Ø×ֶΣ¬½« token ·ÅÔÚÿ¸ö±íµ¥ÖС£µ±±íµ¥Ìύʱ£¬Laravel »áÑéÖ¤ÇëÇóÖÐµÄ token ÊÇ·ñ׼ȷ¡£ÈôÊÇ token ²»×¼È·£¬Ôò»á·µ»Ø 419 ¹ýʧ¡£
Laravel 419 ¹ýʧµÄÔµ¹ÊÔÓÉ
Laravel 419 ¹ýʧͨ³£ÊÇÓÉÏÂÁÐÔµ¹ÊÔÓÉÒýÆðµÄ£º
CSRF_token ÓâÆÚ»ò²»±£´æ
µ±Ò³ÃæÔÚä¯ÀÀÆ÷Öз¿ªºÜ³¤Ò»¶Îʱ¼äʱ£¬Laravel ÌìÉúµÄ CSRF_token »áÓâÆÚ£¬´Ó¶øµ¼ÖÂÑé֤ʧ°Ü¡£´Ëʱ£¬ÏµÍ³½«·µ»Ø 419 ¹ýʧ¡£±ðµÄ£¬ÈôÊÇÄãÊÖ¶¯ÐÞ¸ÄÁË±íµ¥ÖÐµÄ CSRF_token£¬Ò²»áµ¼ÖÂÑé֤ʧ°Ü¡£
½ûÓÃ cookie
ÈôÊÇÄãµÄä¯ÀÀÆ÷ÒѽûÓà cookies£¬ÄÇô CSRF ÈÏÖ¤½«ÎÞ·¨Õý³£ÊÂÇ飬Õâ»áµ¼Ö Laravel 419 ¹ýʧ¡£
¹ýʧÉèÖÃÎļþ
ÔÚijЩÇéÐÎÏ£¬Laravel Ó¦ÓóÌÐòµÄÉèÖÃÎļþ¿ÉÄܲ»×¼È·£¬ÕâÒ²¿ÉÄܵ¼Ö 419 ¹ýʧ¡£
ÔõÑù½â¾ö Laravel 419 ¹ýʧ
Õë¶Ô²î±ðµÄÔµ¹ÊÔÓÉ£¬ÎÒÃÇ¿ÉÒÔ½ÓÄÉһЩ²î±ðµÄÒªÁìÀ´½â¾ö Laravel 419 ¹ýʧ£º
CSRF_token ÓâÆÚ»ò²»±£´æ
Ò»ÖÖ½â¾öÒªÁìÊÇʹÓà JavaScript ׼ʱ¸üРCSRF_token¡£ÔÚ HTML Ò³ÃæÖÐÌí¼ÓÒÔÏ´úÂ룬Ëü»á׼ʱ¸üРtoken¡£
<meta><script> setInterval(function(){ var csrfToken = document.querySelector('meta[name="csrf-token"]').getAttribute('content'); document.getElementsByName("_token").forEach(function(input){ input.value = csrfToken; }); }, 300000); // 5·ÖÖÓ </script>
µÇ¼ºó¸´ÖÆ
ÁíÒ»ÖÖ½â¾öÒªÁìÊÇʹÓà Laravel ÌṩµÄ csrf_field Blade ÖúÊÖº¯Êý¡£
µÇ¼ºó¸´ÖÆ @csrf …
½ûÓÃ cookie
ÈôÊÇÔÚä¯ÀÀÆ÷ÖнûÓÃÁË cookie£¬ÄÇô CSRF ÈÏÖ¤½«ÎÞ·¨Õý³£ÊÂÇé¡£½â¾öÒªÁìÊÇÔÚä¯ÀÀÆ÷ÖÐÆôÓà cookie¡£Õâͨ³£ÊÇÔÚä¯ÀÀÆ÷ÉèÖÃÖÐÍê³ÉµÄ¡£
¹ýʧÉèÖÃÎļþ
ÈôÊÇ Laravel Ó¦ÓóÌÐòµÄÉèÖÃÎļþ·ºÆðÁ˹ýʧ£¬Ò²»áµ¼Ö CSRF ÈÏ֤ʧ°Ü¡£Äú¿ÉÒÔ¼ì²éÏîÄ¿ÖÐµÄ config/session.php ÎļþÊÇ·ñ±£´æ²¢×¼È·ÉèÖã¬È·±£ driver Ñ¡ÏîµÄֵΪ file »ò cookie¡£±ðµÄ£¬¼ì²é config/app.php ÎļþÖÐµÄ key Ñ¡ÏîÊÇ·ñ±£´æ¡£
×ܽá
Laravel 419 ¹ýʧͨ³£ÊÇÓÉ CSRF ÈÏÖ¤µ¼Öµġ£ÎÒÃÇ¿ÉÒÔʹÓÃһЩ¼òÆÓµÄÒªÁìÀ´½â¾öÕâ¸öÎÊÌ⣬Èç׼ʱ¸üРCSRF_token£¬ÆôÓÃä¯ÀÀÆ÷ cookie£¬¼ì²éÉèÖÃÎļþµÈ¡£Ï£Íûͨ¹ý±¾ÎĵÄÏÈÈÝ£¬ÄúÄܸüºÃµØÃ÷È·Ï¢Õù¾ö Laravel ÖÐµÄ 419 ¹ýʧ¡£ÈôÊÇÄúÔÚ½â¾öÎÊÌâʱÓöµ½ÁËÄÑÌ⣬ÇëËæʱÉó²é Laravel Îĵµ»òÔÚ Laravel ÉçÇøÖÐÌáÎÊ¡£
ÒÔÉϾÍÊÇlaravel 419¹ýʧÔõô½â¾öµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡