THINKPHP 安全

本文详述了ThinkPHP框架中的数据安全措施,包括输入过滤、表单合法性检测、表单令牌验证、防止SQL注入、目录安全文件保护、模板文件保护、上传安全以及防止XSS攻击等,旨在提升Web应用的安全性。
摘要由CSDN通过智能技术生成

输入过滤

永远不要相信客户端提交的数据,所以对于输入数据的过滤势在必行,我们建议:

  • 开启令牌验证避免数据的重复提交;
  • 使用自动验证自动完成机制进行初步过滤;
  • 使用系统提供的I函数获取用户输入数据;
  • 对不同的应用需求设置不同的安全过滤函数,常见的安全过滤函数包括stripslashes、htmlentities、htmlspecialchars和strip_tags等

 

使用I函数过滤

使用系统内置的I函数是避免输入数据出现安全隐患的重要手段,I函数默认的过滤方法是htmlspecialchars,如果我们需要采用其他的方法进行安全过滤,有两种方式:

如果是全局的过滤方法,那么可以设置DEFAULT_FILTER,例如:

'DEFAULT_FILTER'        =>  'strip_tags',

设置了DEFAULT_FILTER后,所有的I函数调用默认都会使用strip_tags进行过滤。

当然,我们也可以设置多个过滤方法,例如:

'DEFAULT_FILTER'        =>  'strip_tags,stripslashes',

 

如果是仅需要对个别数据采用特殊的过滤方法,可以在调用I函数的时候传入过滤方法,例如:

I('post.id',0,'intval'); // 用intval过滤$_POST['id']
I('get.title','','strip_tags'); // 用strip_tags过滤$_GET['title']

要尽量避免直接使用$_GET $_POST $_REQUEST 等数据,这些可能会导致安全的隐患。 就算你要获取整个$_GET数据,我们也建议你使用 I('get.') 的方式

 

写入数据过滤

如果你没有使用I函数进行数据过滤的话,还可以在模型的写入操作之前调用filter方法对数据进行安全过滤,例如:

$this->data($data)->filter('strip_tags')-&
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值