防止外部post提交
关于防止外部post提交的研究
老话题今天又研究了一下:
目前我觉得有效的办法还是只有一个,图片验证码。
其它几种行不通的方法:
1.判断HTTP_REFERER,实际上这个信息是浏览器给服务器的,所以完全可以模拟
2.判断session 代码如下:
<?php
session_start();
if(isset($_POST['name']) && !empty($_POST['name'])){
if($_POST['check']==$_SESSION['check']){
echo '正常访问';
}
else{
echo '外部访问';
}
}
$token=md5(uniqid(rand(),true));
$_SESSION['check']=$token;
?>
<FORM METHOD=POST ACTION="">
<INPUT TYPE="text" NAME="name"><INPUT TYPE="text" NAME="check" value="<?php echo $token;?>"><INPUT TYPE="submit">
</FORM>
目前我觉得有效的办法还是只有一个,图片验证码。
其它几种行不通的方法:
1.判断HTTP_REFERER,实际上这个信息是浏览器给服务器的,所以完全可以模拟
2.判断session 代码如下:
<?php
session_start();
if(isset($_POST['name']) && !empty($_POST['name'])){
if($_POST['check']==$_SESSION['check']){
echo '正常访问';
}
else{
echo '外部访问';
}
}
$token=md5(uniqid(rand(),true));
$_SESSION['check']=$token;
?>
<FORM METHOD=POST ACTION="">
<INPUT TYPE="text" NAME="name"><INPUT TYPE="text" NAME="check" value="<?php echo $token;?>"><INPUT TYPE="submit">
</FORM>
补充:Php教程,Php安全