×ðÁú¿­Ê±

laravelÔõô·Àcsrf

laravelÊÇÒ»¿îÊ¢ÐеÄphp¿ò¼Ü £¬ËüÌṩÁËÐí¶àÊÊÓù¤¾ßºÍÇå¾²²½·¥ £¬Ê¹µÃ¿ª·¢Ö°Ô±¿ÉÒÔÇáËɵع¹½¨¸ß¼¶webÓ¦ÓóÌÐò ¡£ÆäÖÐ £¬±ÜÃâ¿çÕ¾ÇëÇóαÔ죨csrf£©¹¥»÷ÊÇÒ»¸öºÜÊÇÖ÷ÒªµÄÇå¾²²½·¥ ¡£ÔÚ±¾ÎÄÖÐ £¬ÎÒÃǽ«ÏÈÈÝlaravelÖÐÔõÑùÓÐÓõرÜÃâcsrf¹¥»÷ ¡£

ʲôÊÇCSRF¹¥»÷£¿

ÔÚÉîÈëÏàʶLaravelÔõÑù±ÜÃâCSRF¹¥»÷֮ǰ £¬ÏÈÀ´ÏàʶһÏÂCSRF¹¥»÷ÊÇʲô ¡£CSRF¹¥»÷£¨Cross-Site Request Forgery£© £¬Ò²³ÆΪ¡°one-click attack¡±»ò¡°session riding¡± £¬ÊÇÒ»ÖÖÍøÂç¹¥»÷ÊÖÒÕ £¬¹¥»÷ÕßʹÓÃÓû§ÔÚÒÑÈÏÖ¤ÍøÕ¾ÉϵĻỰȨÏÞ £¬ÔÚÓû§²»ÖªÇéµÄÇéÐÎÏÂÖ´Ðв»·¨²Ù×÷ ¡£¼ò¶øÑÔÖ® £¬¾ÍÊǹ¥»÷Õßͨ¹ýÓÕÆ­Óû§ÔÚÒ»¸öÍøÕ¾ÉÏÖ´ÐвÙ×÷ £¬´Ó¶ø¾ÙÐв»·¨×ªÒÆ×ʽð»òÕß͵ȡÓû§µÄÃô¸ÐÐÅÏ¢µÈÐÐΪ ¡£

CSRF¹¥»÷µÄÔ­Àí²¢²»ÖØ´ó £¬¹¥»÷ÕßÔÚÒ»¸öÍøÕ¾ÉÏαÔìÒ»¸ö±íµ¥»òÕßÁ´½Ó £¬ÆäÖаüÀ¨ÁËÖ´ÐÐһЩΣÏÕ²Ù×÷µÄÇëÇó ¡£È»ºó £¬¹¥»÷Õß»áÓÕʹÓû§µã»÷»òÕßÌá½»ÕâЩαÔìµÄ±íµ¥ £¬µ±Óû§Ö´ÐÐÕâЩ²Ù×÷ʱ £¬¹¥»÷Õß¾ÍÄܹ»Ê¹ÓÃÕâ¸öʱ»úÇÔÈ¡Óû§µÄÐÅÏ¢ £¬²¢Ö´ÐÐһЩ²»·¨²Ù×÷ ¡£

Ôõô±ÜÃâCSRF¹¥»÷£¿

LaravelÌṩÁËһЩ±ÜÃâCSRF¹¥»÷µÄÒªÁì £¬ÒÔÏÂÊÇһЩ³£ÓõÄÒªÁ죺

CSRFÁîÅÆ

LaravelʹÓÃCSRFÁîÅÆÀ´±ÜÃâCSRF¹¥»÷ £¬¸ÃÁîÅÆ»áÔÚ±íµ¥Ìύʱ·¢ËÍ £¬²¢ÇÒ»áÔÚЧÀÍÆ÷¶Ë¾ÙÐÐÑéÖ¤ ¡£LaravelÔÚÿ¸öÓ¦ÓóÌÐòÖÐΪ±íµ¥ºÍAJAXÇëÇóÌṩÁËÒ»°ÑÆæÒìµÄÁîÅÆ £¬¿ÉÒÔ½«¸ÃÁîÅÆǶÈëµ½±íµ¥ºÍAJAXÇëÇóÖÐ £¬µ±ÇëÇó±»·¢Ë͵½Ð§ÀÍÆ÷ʱ £¬Laravel»áÑéÖ¤¸ÃÁîÅÆÊÇ·ñÓëÓ¦ÓóÌÐòÖеÄËæ»úÌìÉúÁîÅÆÆ¥Åä ¡£ÈôÊÇÆ¥ÅäÀÖ³É £¬ÇëÇó¾Í»á±»´¦Öóͷ£ ¡£

ÔÚLaravelÖÐ £¬¿ÉÒÔͨ¹ýʹÓÃcsrf_field()º¯Êý £¬À´ÌìÉúÒ»¸ö°üÀ¨CSRFÁîÅƵÄÒþ²Ø×ֶΠ£¬¸Ã×ֶοÉÒÔ±»Ç¶Èëµ½±íµ¥ÖÐ ¡£ÀýÈ磺

<form action="/your/url" method="POST">
    {{ csrf_field() }}
    <!-- ÆäËû±íµ¥×ֶΠ-->
</form>

µÇ¼ºó¸´ÖÆ

X-CSRF-TokenÍ·

ÔÚʹÓÃAJAX·¢ËÍPOSTÇëÇóʱ £¬¿ÉÒÔÔÚÇëÇóÍ·ÖÐÌí¼ÓX-CSRF-Token×ֶΠ£¬¸Ã×ֶΰüÀ¨CSRFÁîÅÆ £¬Laravel»áÕë¶Ô¸ÃÇëÇóÍ·¾ÙÐÐÑéÖ¤ ¡£

ÀýÈ磺

$.ajaxSetup({
    headers: {
        'X-CSRF-Token': $('meta[name="_token"]').attr('content')
    }
});

µÇ¼ºó¸´ÖÆ

CSRFÑéÖ¤ÖÐÐļþ

ÔÚLaravelÖÐ £¬Í¨¹ýCSRFÑéÖ¤ÖÐÐļþ £¬¿ÉÒÔΪÿ¸öPOST £¬PUT £¬PATCH»òDELETEÇëÇóÇ¿ÖƾÙÐÐCSRFÑéÖ¤ ¡£ÈôÊÇÇëÇóÖÐδ°üÀ¨×¼È·µÄCSRFÁîÅÆ £¬ÇëÇ󽫻ᱻ¾Ü¾ø £¬²¢·µ»ØÒ»¸öHTTP 419״̬Âë ¡£

ΪÁËÆôÓÃCSRFÑéÖ¤ÖÐÐļþ £¬ÔÚÖÐÐļþ×éÖÐÌí¼ÓCSRFÖÐÐļþ¼´¿É ¡£

// app/Http/Kernel.php
protected $middlewareGroups = [
    'web' => [
        // ÆäËûÖÐÐļþ
        IlluminateFoundationHttpMiddlewareVerifyCsrfToken::class,
    ],

    // ÆäËûÖÐÐļþ×é
];

µÇ¼ºó¸´ÖÆ

×¢ÖØ£ºCSRFÁîÅÆÔÚÿ´ÎÇëÇóʱ¶¼»á±¬·¢×ª±ä £¬ÒÔÊÇÔÚ¾ÙÐÐAjaxÇëÇóʱ £¬ÐèÒªÖØÖÃÇëÇóÍ·ÖеÄX-CSRF-Token×ֶΠ£¬²»È»»áÔì³ÉÑé֤ʧ°Ü ¡£

×ܽá

LaravelΪ¿ª·¢Ö°Ô±ÌṩÁËÇ¿Ê¢µÄ¹¤¾ßºÍÇå¾²²½·¥ £¬À´±ÜÃâCSRF¹¥»÷ ¡£Í¨¹ýʹÓÃCSRFÁîÅÆ¡¢X-CSRF-TokenÍ·ºÍCSRFÑéÖ¤ÖÐÐļþ £¬¿ÉÒÔÓÐÓõرÜÃâCSRF¹¥»÷ £¬± £»¤Óû§µÄÐÅÏ¢Çå¾² ¡£ÔÚʹÓÃLaravel¾ÙÐÐWeb¿ª·¢Ê± £¬ÎñÐëҪעÖØÇå¾²ÎÊÌâ £¬²¢Æð¾¢Ñ°ÕÒ²¢Ó¦ÓÃÖÖÖÖÇå¾²²½·¥ £¬ÒÔÈ·±£ÍøÕ¾ºÍÓû§µÄÐÅÏ¢²»Êܵ½¹¥»÷ºÍÍþв ¡£

ÒÔÉϾÍÊÇlaravelÔõô·ÀcsrfµÄÏêϸÄÚÈÝ £¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡

ÃâÔð˵Ã÷£ºÒÔÉÏչʾÄÚÈÝȪԴÓÚÏàÖúýÌå¡¢ÆóÒµ»ú¹¹¡¢ÍøÓÑÌṩ»òÍøÂçÍøÂçÕûÀí £¬°æȨÕùÒéÓë±¾Õ¾ÎÞ¹Ø £¬ÎÄÕÂÉæ¼°¿´·¨Óë¿´·¨²»´ú±í×ðÁú¿­Ê±ÂËÓÍ»úÍø¹Ù·½Ì¬¶È £¬Çë¶ÁÕß½ö×ö²Î¿¼ ¡£±¾ÎĽӴýתÔØ £¬×ªÔØÇë˵Ã÷À´ÓÉ ¡£ÈôÄúÒÔΪ±¾ÎÄÇÖÕ¼ÁËÄúµÄ°æȨÐÅÏ¢ £¬»òÄú·¢Ã÷¸ÃÄÚÈÝÓÐÈκÎÉæ¼°ÓÐÎ¥¹«µÂ¡¢Ã°·¸Ö´·¨µÈÎ¥·¨ÐÅÏ¢ £¬ÇëÄúÁ¬Ã¦ÁªÏµ×ðÁú¿­Ê±ÊµÊ±ÐÞÕý»òɾ³ý ¡£

Ïà¹ØÐÂÎÅ

ÁªÏµ×ðÁú¿­Ê±

13452372176

¿É΢ÐÅÔÚÏß×Éѯ

ÊÂÇéʱ¼ä£ºÖÜÒ»ÖÁÖÜÎå £¬9:30-18:30 £¬½ÚãåÈÕÐÝÏ¢

QR code
¡¾ÍøÕ¾µØͼ¡¿¡¾sitemap¡¿