php防止站外远程提交表单的实例代码

2023-07-1512:08:28后端程序开发Comments944 views字数 814阅读模式

php防止站外远程提交表单的实例代码文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

一般来说防止站长提交表单无非就是对每一次打开表单或提交数据都会需要加一个token来进行验证了,这个其实与验证码做法没什么两样了,下面来看几个防止站外远程提交表单的例子。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

例子一:我们每一次打开提交页面生成一个token然后保存在session中,当表单提交时我们来判断当前的token值与session是否一致,如果是的就是正常提交否则就是无效提交了。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

具体代码如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

复制代码 代码如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

session_start();文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

if ($_POST['submit'] == "go"){文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

//check token文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

if ($_POST['token'] == $_SESSION['token']){文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

//strip_tags文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

$name = strip_tags($_POST['name']);文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

$name = substr($name,0,40);文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

//clean out any potential hexadecimal characters文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

$name = cleanHex($name);文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

//continue processing....文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

}else{文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

//stop all processing! remote form posting attempt!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

}文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

}文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

$token = md5(uniqid(rand(), true));文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

$_SESSION['token']= $token;文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

function cleanHex($input){文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

$clean = preg_replace("![\][xX]([A-Fa-f0-9]{1,3})!", "",$input);文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

return $clean;文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

}文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

?>文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

Name文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

还有一种比较明显的做法就是利用验证码了,这种验证码的方式与其它的方式是一样的哦,下面看个简单的例子文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

例子二:增加验证码文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

表单提交时候增加验证码,可以有效防止灌水机提交数据。但是随着图形图像识别程序变的更加强大,验证码识别也不断的在提高他的难度,有些验证码甚至加入了声音的识别,一些小站点可以采用这样的方式。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/51633.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/bc/51633.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定