⑴ 高分求php表单过滤代码。
要防止注入,过滤表单输入固然重要,但还需要从其他方面一起入手
屏蔽用户输入特殊字符的实质是,禁止用户利用程序漏洞拼装出一些我们不想让用户执行的SQL
例如:
$sql="SELECT*FROMtableWHEREuser='$_POST['user']'ANDpassword='$_POST['pwd']'";
用户输入
$_POST['user']='john';
$_POST['pwd']="'OR''='";
要么实际执行的sql就是
SELECT*FROMtableWHEREuser='john'ANDpassword=''OR''=''
所以我们要对用户的输入做出处理,避免这种情况的发生
对于表单输入,必要的过滤是需要的,对于每一个输入可以写一个function来筛一下
例如:
$user_name=clean($_POST['user']);
functionclean($v){
if(get_magic_quotes_gpc()){
$v=stripslashes($v);
}
//转义字符串中的特殊字符
$v=mysql_real_escape_string($v);
return$v;
}
至于内容中包含一些sql的关键字,其实不用太过紧张,但是在sql语句中必须处理
例如:
INSERTINTOtableVALUES('xxx','xxx','xxx')
要保证每个值都被单引号包起来
SELECT,UPDATE,DELETE中的WHERE条件也是如此,但凡以用户输入的部分作为参数的,都得用单引号括起来,这样就能有效防止sql注入
⑵ php表单安全过滤究竟要怎么做
首先在客户端通过JS进行初步数据过来是有效的手段,但是请注意,一切在客户内端进行的验容证都是非安全的,都是可以绕过的
然后是在代码层进行数据过滤,例如php有些函数可以用来进行一些简单的过滤操作:
strip_tags 可以去掉文本内容中的所有html标签
htmlspecialchars 可以对文本内容中的html标签进行转义
addslashes 可以对内容中的特殊符号进行转义
这些函数可以进行初步过滤,然后具体的内容就需要自己编写相应的规则了,例如清除js代码或者其他的敏感词汇,需要自己编写对应的正则进行替换
最后则是在执行sql时进行一些安全操作,如pdo的预处理等
⑶ php自定义一个函数用来过滤表单的。。比如说filter($_POST);调用filter函数的时
|function filter($array){
foreach($array as $k=>$v){
$array[$k]=htmlspecialchars(strip_tags($v));
$array[$k]=eregi('select|容insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile',$array[$k];
}
}
⑷ 用php处理表单数据
你是直接把name定义成了数组 你可以先打印出来你的hobby[]这个数组 看看就明白了
你的hobby本身就是一个函数
你可以在php开始的时候用extract($_POST);一下 然后用print_r($hobby);你看看你的数组就知道了
⑸ Php表单处理中可以使用〈form〉标签的什么特性来指定处理表单数据的文档
你好.这个和PHP是没有关系的,这个是html标签的问题
在html标签的form标签中,可以使用action='你指定的PHP文件'来指定处理表单数据的文档.
⑹ ThinkPHP获取表单提交过来的账户输入的数据,我是不是要做一些过滤
表单提交过来的数据要进行数据库操作的话是必须要尽心字符过滤的,防止SQL注入,保证数据安全
⑺ php表单获取用户输入数据后过滤的流程
addslashes
htmlspecialchars
mysql_real_escape_string
数字的可以用intval(),最好在之前就循环$_POST,挨个的addslashes或者其他函数。
上面都可以,根据需要来。
⑻ php中,通过$_GET 和 $_POST 取得的数据 安不安全 需要什么过滤函数处理吗
引号过滤有magic_quotes_gpc(服务器配置)
函数addslashes() htmlspecialchars(,ENT_QUOTE);
注意服务器上是否已经开启magic_quotes_gpc
(php>=5.3 已经废弃了它) 如果已经开启,再进行转义会导致双层转义。 另外addslashes() addcslashes() 都不能对数组进行处理,需要写一个递归实现。
你可以使用函数get_magic_quotes_gpc()来检测它是否已经开启
不建议使用addslashes使用addslashes可能会因为数据库编码的问题使得单引号未被转义了解详情可访问:http://shiflett.org/blog/2006/jan/addslashes-versus-mysql-real-escape-string
⑼ php 如何过滤用户提交的javascript代码
进行html标签转义,例如传入内容是$content=“<script>alert('sd');</script>”,运行
$content=htmlspecialchars($content);就会将你的内容转换成
(这回个是转换后插进数据库里的答数据)
这个东西放在浏览器显示就是
<script>alert('sd');</script>,但是不会运行里面的函数。
⑽ php写的一个申请链接功能,就是获取表单过来的数据,然后过滤 检查 发送一份邮件. 求告手帮我检查下
代码不全啊,dns_get_mx这个函数都没有。
其实很简单的事情,表单提交,发邮件推荐你用phpmailer
几分钟写完代码
望采纳