Jump to content
php.lv forumi

Ajax jquery ar security tokeniem. Kā?


Sasa

Recommended Posts

Nezinu pat kā meklēt par šo lietu materiālus, ir tikai atāla nojausma, apmēram, kā man šķiet. Ideja tāda ka lietotājs ielogojas viņam tiek piešķirts tokens, kurš iet cauri visiem pieprasījumiem, kamēr lietotājs neizlogojas.

Kā realizēt? Kā sataisīt drošu webu?

Link to comment
Share on other sites

Vinekāršākais variants būtu piesaistīt tokenu ip adresei, tas atļaus XSRF uzbrukumus vienas ip ietvaros, kas praktiski ir neiespējami. Ja tas neder, var pielikt klāt vēl kādus requesta datus, vai ideālā gadījumā ģenērēt unikālu tokenu un glabāt sesijā.

$_token=hash('sha512','SOMESALT'.$_SERVER['REMOTE_ADDR']);

 

Tālāk lapā script tagos ieliec, lai visiem ajax requestiem pievienotu _tokenu;

 _token='<?php echo $_token; ?>';
 $.ajaxSetup({data:{_token:_token}});

 

tālāk katrā ajax requestā uzģenerē no ip vai nolasi no sesijas tokenu un pārbaudi vai sakrīt ar atsūtīto. Ja sakrīt viss kārtībā, ja nē reģistrē mēģinājumu hackot. Vari pat responsē atbildēt, ka "tava IP ir ielokota un speciālā uzdevumu vienībā ir ceļā pie tevis".

Man, piemēram, MVC visi ajax requesti iet caur speicālu ajax pieprasījumu apstrādes kontroleri, kurš arī automātiski čeko tokenu un tālāk izsauc vajadzīgo ajax kontroleri un tā action-u.

Link to comment
Share on other sites

Ja man iekš ajaxSetup'a būs data: ... un tad kāda ajax requestā arī data: ... (kaut kas ko es gribu iepostēt vai izgetot no db) tas data kas tika uzstādīts iekš ajaxSatup'a nepārrakstīsies ar requesta datu? Vai vienkārši tiks papildināts?

 

XSRF un CSRF ir viens un tas pats?

Edited by Sasa
Link to comment
Share on other sites

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...