Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
´Ó¿ª·¢½Ç¶Èdz̸CSRF¹¥»÷¼°·ÀÓù
 
À´Ô´:ºìºÚÁªÃË ·¢²¼ÓÚ£º 2016-10-18
  1208  次浏览      32

ʲôÊÇCSRF

CSRF¿ÉÒÔ½Ð×ö(¿çÕ¾ÇëÇóαÔì)£¬ÔÛÃÇ¿ÉÒÔÕâÑù×ÓÀí½âCSRF£¬¹¥»÷Õß¿ÉÒÔÀûÓÃÄãµÄÉí·ÝÄãµÄÃûÒåÈ¥·¢ËÍ(ÇëÇó)Ò»¶Î¶ñÒâµÄÇëÇó,´Ó¶øµ¼Ö¿ÉÒÔÀûÓÃÄãµÄÕ˺Å(ÃûÒå)È¥--¹ºÂòÉÌÆ·¡¢·¢Óʼþ,¶ñÒâµÄÈ¥ÏûºÄÕË»§×ÊÔ´,µ¼ÖµÄһЩÁжñÒâÐÐΪ.CSRF¿ÉÒÔ¼òµ¥·ÖΪGetÐͺÍPostÐÍÁ½ÖÖ¡£

GetÐÍCSRF£º

¿´µ½Õâ¸öÃû×Ö,ºÜÃ÷ÏÔÊÇ·¢ËÍGETÇëÇóµ¼Öµġ£ÎÒÕâÀï¼òµ¥µÄ˵һÏ£ºGETÐ͵ÄCSRFÀûÓ÷dz£¼òµ¥,ͨ³£Ö»Òª·¢ËÍÒ»¶ÎHTTPÇëÇó¡£¼òµ¥µÄ˵£¬Èç¹ûÒ»¸öÍøÕ¾Ä³¸öµØ·½µÄ¹¦ÄÜ£¬±ÈÈç(Óû§ÐÞ¸Ä×Ô¼ºÓÊÏä)ÊÇͨ¹ýGET½øÐÐÇëÇóÐ޸ĵϰ¡£

ÈçÏÂÀý:

/user.php?id=226&email=226@226.com //ÕâÀïÎÒÃÇ¿ÉÒÔ¿´³öÕâ¸öÍøÖ·ÊÇͨ¹ýgetÐÍÈ¥¶ÔÓû§µÄÓÊÏä½øÐÐÐ޸ġ£ºóÃæ&email=226@226.com ÊǹؼüµÄµØ·½¡£µ±ÎÒÃÇ·¢ÏÖûÓÐ×öÈκδ¦ÀíÖ®ºó£¬ÎÒÃǽ«¿ÉÒÔÈ¥¹¹ÔìÒ»¶Î´úÂë¡£

Ö»Òª°ÑËüemail²ÎÊýºóÃæµÄÖµ½øÐÐÐ޸ġ£¡£Ö®ºó¹¹ÔìÒ»¸ö´úÂë,»òÕßÖ±½ÓÒ»´®URL·¢¹ýÈ¥(Õý³£ÈËÓ¦¸Ã²»»áÕâÑù)¡£ÈçÏÂÀý£º

/user.php?id=226&email=226@qq.com //Ö»ÒªÕâ¸öidµÄÓû§´¥·¢ÁËÕâURL¼´¿É³É¹¦Ð޸ġ£¹¥»÷Õß¿É×ÔÐÐÐÞ¸Äid£¬·¢Ë͸ÃidÓû§Ò²¿ÉÒÔÐ޸ġ£´¥·¢ºó¼´¿É³É¹¦Ð޸ĵ½Õâ¸öÓû§µÄemail¡£

POSTÐÍCSRF

POSTÐÍCSRF¼òµ¥À´Ëµ£¬Í¨¹ýPOSTÇëÇóÈ¥´¥·¢´úÂëÔì³É©¶´¡£»¹ÊÇÒ»Ñù£¬¾Ù¸öÀý×Ó ±ÈÈçÔÚÒ»¸ö½ÌÓýÊÓÆµÍøÕ¾Æ½Ì¨¡£ÔÚÆÕͨÓû§µÄÑÛÖУ¬µã»÷ÍøÒ³->´ò¿ªÊÔ¿´ÊÓÆµ->¹ºÂòÊÓÆµ ÊÇÒ»¸öºÜÕý³£µÄÒ»¸öÁ÷³Ì¡£¿ÉÊÇÔÚ¹¥»÷ÕßµÄÑÛÖпÉÒÔËãÕý³££¬µ«ÓÖ²»Õý³£µÄ£¬µ±È»²»Õý³£µÄÇé¿öÏ£¬ÊÇÔÚ¿ª·¢Õß°²È«Òâʶ²»×ãûÓнøÐд¦ÀíËùÔì³É¡£¹¥»÷ÕßÔÚ¹ºÂò´¦×¥µ½¹ºÂòʱºòÍøÕ¾´¦Àí¹ºÂò(¿Û³ý)Óû§Óà¶îµÄµØÖ·¡£

±ÈÈ磺/coures/user/handler/25332/buy.php //ͨ¹ýbuy.php´¦Àí¹ºÂò(¹ºÂò³É¹¦)µÄÐÅÏ¢£¬ÕâÀïµÄ25532ΪÊÓÆµID

ÄÇô¹¥»÷ÕßÏÖÔÚ¹¹ÔìÒ»¸ö±íµ¥(form.html)£¬È磺

document.forms[0].submit(); //×Ô¶¯Ìá½»

¹¹ÔìºÃform±íµ¥ºó£¬ÄÇô¹¥»÷Õß½«form.htmlÉÏ´«ÖÁһ̨·þÎñÆ÷ÉÏ£¬½«¸ÃÒ³Ãæ Èç:/form.html

·¢Ë͸øÊܺ¦Õߣ¬Ö»ÒªÊܺ¦ÕßÕýÔڵǽµ±Ç°½ÌÓýÍøÕ¾µÄʱºò£¬´ò¿ª¹¥»÷Õß·¢Ë͵ÄÒ³Ãæ£¬ÄÇô´úÂëÔò×Ô¶¯´¥·¢£¬×Ô¶¯¹ºÂòÁËidΪ25332µÄÊÓÆµ¡£´Ó¶øµ¼ÖÂÊܺ¦ÕßÓà¶î¿Û³ý£¬±»¹¥»÷Õß¶ñÒâÏûºÄÓû§Óà¶î¡£Èç¹ûÍøÕ¾ºÜ²»ÑϽ÷£¬ÄÇôֻҪ°Ñid¸ÄÁË£¬¾Í¿ÉÒÔÈÎÒâµÄÈ¥¶ñÒ⹺ÂòÈκÎÊÓÆµ¡£ÏûºÄÊܺ¦ÕߵIJƲú£¬´Ó¶øµ¼ÖÂÓû§²Æ²ú°²È«ÊÜÓ°Ïì¡£

CSRFµÄÔ­Àí

·¢ÏÖ©¶´¿ÉÀûÓô¦->¹¹Ôì(´î½¨)´î½¨´úÂë->·¢Ë͸øÓû§(¹ÜÀíÔ±)->´¥·¢´úÂë(·¢ËÍÇëÇó).........

´ÓÕâ¸öÀûÓõÄÒ»¸öÁ÷³ÌÖУ¬ÎÒÃÇ¿ÉÒÔ·¢ÏÖ,¹¥»÷Õß½ö½öÖ»ÊÇ×öÁËÁ½´¦¹¤×÷.µÚÒ»´¦ÊÇ:·¢ÏÖ©¶´ÀûÓô¦£¬£¬µÚ¶þ´¦¾ÍÊǹ¹ÔìÀûÓôúÂëÒÔ¼°·¢ËÍÖÁÓû§(¹ÜÀíÔ±)¡£ÖÁÓÚÀûÓã¬Äã»á·¢ÏÖCSRFÓëXSS²»Í¬£¬XSSÊǹ¥»÷Õß×Ô¼ºÌá½»£¬µÈ´ý½á¹û£¬¶øCSRFÄØ£¬ÊÇÓÉÓû§(¹ÜÀíÔ±)×ÔÉíÌá½»¡£ÉõÖÁ¿ÉÒÔ˵¹¥»÷ÕßÖ»×öÁ˹¹Ôì´úÂëµÄ¹¤×÷¡£

ÔÚ¿ª·¢ÖÐÈçºÎ¼òµ¥·ÀÓùCSRF(PHP)

Æäʵ·ÀÓùCSRFÓкܶàÖÖ Èç:ÑéÖ¤Âë¡¢ÑéÖ¤Refer¡¢ÒÔ¼°ÑéÖ¤token£¬¶ÔÌØÊâ²ÎÊý½øÐмÓÃÜ¡£

µ«ÊÇÈç¹ûʹÓÃÑéÖ¤ÂëÈ¥±ÜÃâCSRFµÄ»°£¬ÄÇôÕâÑù»áÑéÖ¤µÄÓ°ÏìÓû§µÄÌåÑ飬ÒòΪÓû§²»»áÿ¸ö²Ù×÷¶¼È¥ÊäÈëÑéÖ¤Âë(»áºÜ·³)¡£

ReferµÄ»°ÔÚÌØÊâÇé¿öÏÂÒ²ÊDz»¿¿Æ×µÄ(·þÎñÆ÷¶Ë³öµÄÎÊÌâ)¡£

ÄÇôĿǰֻÓÐtokenÊDZ»´ó¶àÍøÕ¾È¥Ê¹Óõġ£ÒòΪ¿ÉÒÔ±ÜÃâÓû§ÌåÑéµÄÎÊÌâ·¢Éú¡£Í¬Ñù·þÎñÆ÷±ßÎÊÌâÒ²·¢ÉúÒ²²»»áºÜ¶à¡£

ÄÇô½ÓÏÂÀ´¾Í¿ªÊ¼½éÉÜÔÚPHP¿ª·¢ÖÐÈçºÎÈ¥¼òµ¥µÄÉú³Étoken£¬±ÜÃâCSRF¡£ÎÒÃÇ¿ÉÒÔͨ¹ýPHPÖк¯Êý(randÉú³ÉËæ»úÊý+uniqidÉú³ÉÒ»¸öΨһid+timeʱ¼ä´Á)×îºóÔÚ½²Õ⼸¸öÉú³ÉµÄÖµÓÃmd5¼ÓÃÜ¡£½ÓÏÂÀ´À´ËµËµÈçºÎÈ¥Éú²ú£º

Ê×ÏÈÏÈ¿ªÆôsession»á»°

session_start(); //¿ªÆôsession»á»°

È»ºóÎÒÃÇÈ¥Ëæ»úÉú³ÉÒ»¶ÎÖµ(Õâ¸öÖµ¾ÍÊÇÎÒÃǵÄtokenÖµ) ±¸×¢:ÆäʵÕâÑù×ÓÉú³É²»ÊÇ×îÑϽ÷µÄ(´Ë´ÎÖ»ÊÇ´ó¼ÒÒ»Æð½»Á÷¡£´ó¼Ò¿ÉÒÔÈ¥³¢ÊÔ¸÷ÖÖ·½Ê½¡£)

$safe226 = md5(time() . uniqid() . rand(1,99999)); //ÊäÈëÒ»¸öËæ»úÊýÖµ

ÎÒÃÇÊä³ö¿´¿´

½ÓÏÂÀ´£¬ÎÒÃÇÐèÒª×öµÄ¾ÍÊǰÑÉú³É³öÀ´µÄtoken¶ª½øÔÛÃǵÄsessionÀïÃæ¡£

½ÓÏÂÀ´ÄãÃÇÓ¦¸ÃÖªµÀÁË£¬ÎÒÃÇÑéÖ¤µÄÆäʵÊÇÎÒÃÇ´æµ½sessionÀïÃæµÄtokenÊÇ·ñÓëÓû§Ìá½»ÉÏÀ´µÄtokenÖµÒ»Ö¡£Èç¹ûÒ»ÖÂÔò³É¹¦£¬·ñÔòÔòʧ°Ü¡£ÎÒÃÇ×¼±¸Ò»¸ö±íµ¥£¬ÓÃÓÚ´«µÝÓû§Ìá½»ÇëÇóµÄÒ»¸ötoken¡£

">

ÎÒÃǰÑtokenÌá½»µ½test.phpÀïÈ¥´¦Àí!

Æäʵ¾ÍÊǽ«ÎÒÃǶª½øsessionÀïÃæµÄÖµ¶ª½øÒþ²Ø±íµ¥ÀïÃæ¡£µ±Óû§Ìá½»µÄʱºòÒ»ÆðÌá½»¹ýÀ´ÑéÖ¤£¬ÑéÖ¤ÊÇ·ñÓësessionÀïÃæµÄtokenÏàͬ¡£

ÎÒÃÇÀ´¸ÐÊÜÏ¡£

{C}

Ok£¬½ÓÏÂÀ´ÎÒÃÇÖ»ÐèҪȥÅжÏÓû§´«µÝ¹ýÀ´µÄtokenÖµÊÇ·ñºÍsessionÀïÃæµÄÖµÒ»ÖÂ(ÕâÀïʹÓüòµ¥Åжϣ¬if(isset($_SESSION['226_token']) && isset($_POST['token'])){

if($_SESSION['226_token'] === $_POST['token']){

//ÕâÀïÊÇÑéÖ¤³É¹¦ºóËùд´úÂë

echo '¹ºÂò³É¹¦';

}else{

echo 'ÇëÎð·Ç·¨²Ù×÷!ÅжÏÊÇ·ñÒ»ÖÂ';

}

}else{

echo 'ÇëÎð·Ç·¨²Ù×÷!ÅжÏÊÇ·ñ´æÔÚ';

}

½ÓÏÂÀ´£¬ÎÒÃÇÀûÓÃÏ¡£ÕâÀïÒÑÖªµÀ½á¹¹¡£ËùÒÔÖ±½Ó¹¹ÔìÒ»¸ö±íµ¥¡£

¸ù¾Ý´úÂëÇé¿ö ¾ÍÊǵ±ÎÒÃǹ¹ÔìµÄÀûÓôúÂ룬ûÓд«µÝtoken»òÕßtoken²»Ò»ÖµÄʱºò£º

ÕâÀïÁ½¸ö´òÓ¡ÊÇÔÚtest.phpÀïÃæ´òÓ¡ ûÓÐÈ¥µôprint_r(ÎÞÊӾͺÃ)£¬µ±ÀûÓÃʱºò»á·¢ÏÖûÓд«µÝtoken¹ýÈ¥¡£»áÌáʾ¡£´íÎó!

½ÓÏÂÀ´ÎÒÃÇÀ´¿´£¬ÍêȫһÖµÄʱºò¡£»áÌáʾµÄÊÇʲô£º

µ±ÎÒÃÇͨ¹ýÑéÖ¤µÄʱºò¡£Äã»á·¢ÏÖÒѾ­ÑéÖ¤³É¹¦¡£¹ºÂò³É¹¦¡£

   
1208 ´Îä¯ÀÀ       32
 
Ïà¹ØÎÄÕÂ

iOSÓ¦Óð²È«¿ª·¢£¬Äã²»ÖªµÀµÄÄÇЩÊÂÊõ
Web°²È«Ö®SQL×¢Èë¹¥»÷
ÒÆ¶¯APP°²È«ÔÚÉøÍ¸²âÊÔÖеÄÓ¦ÓÃ
´ÓGoogle±¸·Ý»¥ÁªÍø¿´¡°Êý¾Ý°²È«¡±
 
Ïà¹ØÎĵµ

web°²È«Éè¼ÆÓë·À»¤
»¥ÁªÍøº£Á¿ÄÚÈݰ²È«´¦Àí¼¼Êõ
ºÚ¿Í¹¥»÷Óë·À·¶¼¼Êõ
WEBºÚºÐ°²È«¼ì²â
 
Ïà¹Ø¿Î³Ì

WEBÍøÕ¾ÓëÓ¦Óð²È«Ô­ÀíÓëʵ¼ù
webÓ¦Óð²È«¼Ü¹¹Éè¼Æ
´´½¨°²È«µÄJ2EE WebÓ¦ÓôúÂë
ÐÅÏ¢°²È«ÎÊÌâÓë·À·¶
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]

iOSÓ¦Óð²È«¿ª·¢
Web°²È«Ö®SQL×¢Èë¹¥»÷
APP°²È«ÔÚÉøÍ¸²âÊÔÖеÄÓ¦ÓÃ
³õ̽PHPµÄSQL×¢Èë¹¥»÷µÄ¼¼Êõ
´ÓGoogle±¸·Ý¿´¡°Êý¾Ý°²È«¡±

WEBÍøÕ¾ÓëÓ¦Óð²È«Ô­ÀíÓëʵ¼ù
webÓ¦Óð²È«¼Ü¹¹Éè¼Æ
´´½¨°²È«µÄJ2EE WebÓ¦ÓôúÂë
×¢²áÐÅÏ¢°²È«×¨ÒµÈËÔ±(CISP)
ÐÅÏ¢°²È«¹ÜÀí
ÐÅÏ¢°²È«ÎÊÌâÓë·À·¶

ÖйúÒøÐÐ ÐÅÏ¢°²È«¼¼Êõ¼°Éî¶È·ÀÓù
WebÓ¦Óð²È«¼Ü¹¹¡¢ÈëÇÖ¼ì²âÓë·À»¤
ij²ÆË°ÁìÓòÖªÃûIT·þÎñÉÌ Web°²È«²âÊÔ
ÆÕÈð¿Ë˹ web°²È«Éè¼Æ¡¢²âÊÔÓëÓÅ»¯
±±¾©ºÍÀûʱ ÐÔÄܺͰ²È«ÐÔ²âÊÔ
SUNÖйú¹¤³ÌÑо¿Ôº JSF¿ò¼Ü¡¢°²È«