防止异地远程表单提交的PHP示例代码
一般来说,防止站长提交表单无非是在每次打开表单或提交数据时添加一个令牌进行验证。这其实和验证码的方式没有什么区别。让我们看一些如何防止异地远程提交表单的示例。
示例 1:每次打开帖子页面时,我们都会创建一个令牌并将其存储在会话中。当表单提交时,我们判断当前token值是否与session一致。如果是,则为正常帖子,否则为无效帖子。
具体代码如下:
复制代码如下:
session_start();
if ($_POST['submit'] == "go"){
/ /检查令牌
if ($_POST['token'] == $_SESSION['token']){
//strip_tags
$name = strip_tags($_POST['name']);
$name = substr($name,0,40);
//清除任何潜在的十六进制字符
$name = cleanHex($name);
//继续处理....
}else{
//停止所有进程!远程表单发布尝试!
}
}
$token = md5(uniqid(rand(), true));
$_SESSION['token'] = $token;
function cleanHex ($input){
$resik = preg_replace("![\][xX]([A-Fa-f0-9]{1,3})!", " ",$input);
return $clean;
}
?>
Name
另一种明显的方法是使用验证码。这个验证码的方法和其他的方法是一样的,下面看简单的例子
例2:添加验证码
提交表单时添加验证码可以有效防止灌水机从发送数据。 。然而,随着图形和图像识别程序变得越来越强大,验证码的识别继续变得更加困难。一些验证码甚至包含语音识别功能。一些小网站可以使用这种方法。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。