update token methods to ensure csrf token is always get setted

This commit is contained in:
YuFei Zhu 2012-05-01 13:18:42 +01:00
parent e3b8848f78
commit 7f8b2fca89

View File

@ -690,10 +690,7 @@ function jspath()
/* authorization token check for CSRF attack */ /* authorization token check for CSRF attack */
function csrfchecktoken(){ function csrfchecktoken(){
/* if auth token not set, set it now */ setcsrftoken();
if(!isset($_SESSION['csrf_token'])){
$_SESSION['csrf_token']=sha1(rand(10000000,99999999));
}
// check the turing code for post requests and del requests // check the turing code for post requests and del requests
if ($_SERVER['REQUEST_METHOD'] == 'POST'){ if ($_SERVER['REQUEST_METHOD'] == 'POST'){
@ -712,12 +709,23 @@ function csrfchecktoken(){
/* print csrf token as a hidden field*/ /* print csrf token as a hidden field*/
function print_csrf_token_input(){ function print_csrf_token_input(){
setcsrftoken();
echo "<input name='csrf_token' type='hidden' value='".$_SESSION['csrf_token']."' />"; echo "<input name='csrf_token' type='hidden' value='".$_SESSION['csrf_token']."' />";
} }
/* print csrf token in url format */ /* print csrf token in url format */
function print_csrf_token_in_url(){ function print_csrf_token_in_url(){
setcsrftoken();
echo "&amp;csrf_token=".$_SESSION['csrf_token']; echo "&amp;csrf_token=".$_SESSION['csrf_token'];
} }
/* set csrf token */
function setcsrftoken(){
if(!isset($_SESSION['csrf_token'])){
$_SESSION['csrf_token']=sha1(rand(10000000,99999999));
}
}
?> ?>