一般来说,防备站外提交表单,不过就是对每一次翻开表单或提交数据,都邑须要加一个token来举行考证。这个实在与考证码做法没什么两样,下面来看几个防备站外长途提交表单的例子。
例子一:我们每一次翻开提交页面生成一个token,然后,保存在session中,当表单提交时,我们来推断当前的token值与session是不是一致,假如是的,就是一般提交,不然,就是无效提交了。
细致代码以下:
<?php session_start(); if ($_POST['submit'] == "go"){ //check token if ($_POST['token'] == $_SESSION['token']){ //strip_tags $name = strip_tags($_POST['name']); $name = substr($name,0,40); //clean out any potential hexadecimal characters $name = cleanHex($name); //continue processing.... }else{ //stop all processing! remote form posting attempt! } } $token = md5(uniqid(rand(), true)); $_SESSION['token']= $token; function cleanHex($input){ $clean = preg_replace("![\][xX]([A-Fa-f0-9]{1,3})!", "",$input); return $clean; } ?> <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post"> <p><label for="name">Name</label> <input type="text" name="name" id="name" size="20" maxlength="40"/></p> <input type="hidden" name="token" value="<?php echo $token;?>"/> <p><input type="submit" name="submit" value="go"/></p> </form>
另有一种比较显著的做法,就是应用考证码,这类考证码的体式格局与别的的体式格局是一样的,下面看个简朴的例子
例子二:增添考证码
表单提交时刻增添考证码,能够有用防备注水机提交数据。然则,跟着图形图像辨认顺序变的越发壮大,考证码辨认也不停的在进步他的难度,有些考证码以至加入了声响的辨认,一些小站点能够采纳如许的体式格局。
if($_POST['vcode'] != get_vcode()) { exit('考证码校验失利,没法入库'); }
以上内容仅供参考!
引荐教程:PHP视频教程
以上就是PHP怎样防备长途提交的细致内容,更多请关注ki4网别的相干文章!