美文网首页
入参安全校验

入参安全校验

作者: zhyke | 来源:发表于2018-08-15 18:45 被阅读0次

案例1:跨站运行脚本

<html>

<form>

<input name="foo" value=' <?php {$_GET['foo']} ?>' >

</form>

</html>

alert('foo')

请求参数输入上面内容 执行上面会出现

上面输入只是简单案例,按照这个思路那么我们可以在里面执行任何JavaScript代码

解决方法:

使用strip_tags()从字符串中去除 HTML 和 PHP 标记或者使用htmlentities()

案例2:sql注入

select * from  user_info   from   users  where user='$user'  and   pwd='$pwd';

对于上面的sql我们可以输入

http://xxxxx?user=admin'#

解决方法:

对输入进行addslashes()进行转义处理

使用pdo的预处理语句

案例3:校验请求参数是不是被篡改

解决方式:

1.md5校验

大概思路就是将请求参数按照相互约定的顺序(一般是字母顺序)进行拼接,然后MD5,服务端收到请求之后也用同样的规则得到一个MD5值,相互比对两者.相同则代表没有被修改,不同则说明被修改过

2.进阶校验(HMAC 鉴定信息的关键字散列)

可以使用HMAC,他使用一个加密的键值对明文进行双重散列处理

hash_hmac('md5', $data, $key)

algo 要使用的哈希算法名称,例如:"md5","sha256","haval160,4" 等。

data 要进行哈希运算的消息。

key 使用 HMAC 生成信息摘要时所使用的密钥。

过滤函数

filter_var—使用特定的过滤器过滤一个变量,各种变量校验

filter_var('127.0.0.1',FILTER_VALIDATE_IP)   //ip

filter_var('127.0.0.1',FILTER_VALIDATE_EMAIL)  //邮箱

同时记录下几个工具,在packagist可以找到

aura/filter

respect/validation

symfony/validator

PHP: filter_var - Manual

相关文章

网友评论

      本文标题:入参安全校验

      本文链接:https://www.haomeiwen.com/subject/gkdlbftx.html