导航:首页 > 净水问答 > thinkphpxss过滤器

thinkphpxss过滤器

发布时间:2022-08-07 23:51:49

『壹』 thinkphp怎么做才是安全的sql防注入

  1. 注入的产生一般都是对用户输入的参数未做任何处理直接对条件和语句进行拼装.


    代码举例:

    //不安全的写法举例1

$_GET['id']=8;//希望得到的是正整数

$data=M('Member')->where('id='.$_GET['id'])->find();

$_GET['id']='8 or status=1';//隐患:构造畸形查询条件进行注入;

//安全的替换写法

$data=M('Member')->where(array('id'=>$_GET['id']))->find();//使用数组方式将自动使用框架自带的字段类型检测防止注入

$data=M('Member')->where(array('id'=>(int)$_GET['id']))->find();//类型约束

$data=M('Member')->where('id='.intval($_GET['id']))->find();//类型转换

$data=M('Member')->where(array('id'=>I('get.id','','intval')))->find();//本人习惯写法

$data=M('Member')->where(array('id'=>':id'))->bind(':id',I('get.id'))->select();//PDO驱动可以使用参数绑定

$data=M('Member')->where("id=%d",array($_GET['id']))->find();//预处理机制

//不安全的写法举例2

$_GET['id']=8;//希望得到的是正整数

$data=M()->query('SELECT * FROM `member` WHERE id='.$_GET['id']);//执行的SQL语句

$_GET['id']='8 UNION SELECT * FROM `member`';;//隐患:构造畸形语句进行注入;

2.防止注入的总的原则是<<根据具体业务逻辑,对来源于用户的值的范围,类型和正负等进行限制和判断>>,同时<<尽量使用THINKPHP自带的SQL函数和写法>>.

3.在THINKPHP3.2版本中的操作步骤是:
一:在项目配置文件中添加配置: 'DEFAULT_FILTER' => 'htmlspecialchars', //默认过滤函数
二: 使用框架带的I方法获取来自用户提交的数据;
例子:M('Member')->save(array('content'=>I('post.content')));这样添加的content内容是经过htmlspecialchars处理过的.

4.为COOKIE添加httponly配置


5.最新版本的thinkphp已经支持此参数。

9.富文本过滤

富文本过滤是,XSS攻击最令人头疼的话题,不仅是小网站,就连BAT这样的巨头也是三天两头的被其困扰.

『贰』 这个xss有过滤方案么

方案一:
避免XSS的方法之一主要是将用户所提供的内容输入输出进行过滤,回许多语言答都有提供对HTML的过滤:
可以利用下面这些函数对出现xss漏洞的参数进行过滤:
PHP的htmlentities()或是htmlspecialchars()。
Python 的 cgi.escape()。
ASP 的 ServerEncode()。
ASP.NET 的 ServerEncode() 或功能更强的 Microsoft Anti-Cross Site Scripting Library
Java 的 xssprotect(Open Source Library)。
Node.js 的 node-validator。
方案二:使用开源的漏洞修复插件。( 需要站长懂得编程并且能够修改服务器代码 )

『叁』 纠结,原生PHP很熟练,还有没有必要去学ThinkPHP

熟练也不行,原生的是基础,有便于理解。如果用原生的做项目会出现很多问题,比如扩展性低,比如某一个函数出现不兼容,处理起来很麻烦,比如一些漏洞 sql注入、xss、csrf都要自己写,框架中好多都是自带的,最少要用熟练一到两种框架,还要会最少一种开源框架的二次开发,这样一个陌生的项目才能快速理清逻辑。

『肆』 在xss中各种过滤的情况,在什么地方可能存在注入点

XSS注入的本质就是:某网页中根据用户的输入,不期待地生成了可执行的js代码,并且js得到了浏览器的执行.意思是说,发给浏览器的字符串中,包含了一段非法的js代码,而这段代码跟用户的输入有关.常见的XSS注入防护,可以通过简单的htmlspecialchars(转义HTML特殊字符),strip_tags(清除HTML标签)来解决,但是,还有一些隐蔽的XSS注入不能通过这两个方法来解决,而且,有时业务需要不允许清除HTML标签和特殊字符.下面列举几种隐蔽的XSS注入方法:IE6/7UTF7XSS漏洞攻击隐蔽指数:5伤害指数:5这个漏洞非常隐蔽,因为它让出现漏洞的网页看起来只有英文字母(ASCII字符),并没有非法字符,htmlspecialchars和strip_tags函数对这种攻击没有作用.不过,这个攻击只对IE6/IE7起作用,从IE8起微软已经修复了.你可以把下面这段代码保存到一个文本文件中(前面不要有空格和换行),然后用IE6打开试试(没有恶意代码,只是一个演示):+/v8+ADw-script+AD4-alert(document.location)+ADw-/script+AD4-最容易中招的就是JSONP的应用了,解决方法是把非字母和数字下划线的字符全部过滤掉.还有一种方法是在网页开始输出空格或者换行,这样,UTF7-XSS就不能起作用了.因为只对非常老版本的IE6/IE7造成伤害,对Firefox/Chrome没有伤害,所以伤害指数只能给4颗星.参考资料:UTF7-XSS不正确地拼接JavaScript/JSON代码段隐蔽指数:5伤害指数:5Web前端程序员经常在PHP代码或者某些模板语言中,动态地生成一些JavaScript代码片段,例如最常见的:vara='<!--?phpechohtmlspecialchars($name);?';不想,$name是通过用户输入的,当用户输入a’;alert(1);时,就形成了非法的JavaScript代码,也就是XSS注入了.只需要把上面的代码改成:vara=

『伍』 thinkphp 的上传代码中。如何让上传的文件的保存名为它自己的名字,而不是时间戳生成的名字

可以设置啊,saveRule 上传文件命名规则 留空则使用原来文件名保存;
http://xss23.iteye.com/blog/398584网上随便一搜索,都是这个,

『陆』 thinkphp怎么做才是安全的sql防注入

1.尽量少使用数组查询条件而应该使用查询表达式替代;
2.尽量少使用字符串查询条件,如果不得已的情况下 使用手动参数绑定功能;
3.不要让用户输入决定要查询或者写入的字段;
对于敏感数据在输出的时候使用hidden方法进行隐藏;
对于数据的写入操作应当做好权限检查工作;
写入数据严格使用field方法限制写入字段;
对于需要输出到页面的数据做好必要的XSS过滤;

『柒』 thinkphp怎么做才是安全的sql防注入

1:抵御99%的攻击方式,适用于90%的场景.

当网站不涉及复杂的用户交互时,可以对用户所有提交的文本进行htmlspecialchars函数处理。

在THINKPHP3.2版本中的操作步骤是:
一:在项目配置文件中添加配置: 'DEFAULT_FILTER' => 'htmlspecialchars', //默认过滤函数
二: 使用框架带的I方法获取来自用户提交的数据;
例子:M('Member')->save(array('content'=>I('post.content')));这样添加的content内容是经过htmlspecialchars处理过的.

提问:为什么经过htmlspecialchars处理过的文本可以保证是安全的?
回答:纵观XSS各种攻击方式绝大多数依赖<>'"& 这几个字符中的一个或几个对内容进行注入攻击。而htmlspecialchars函数的作用就是将这些字符转换成无害的HTML 实体;
提问:为什么有这么好的方法,而还有好多网站还是被攻击.
回答:因为好多程序员总会粗心忘记使用这个方法,而遗漏某条数据的过滤。

2:对COOKIE进行IP绑定
cookie里面一般有自动登录信息和session_id,就算对cookie里面的内容全部加了密,cookie的信息一但被别人通过XSS攻击获取后也一样等同于把自己的帐号密码给了别人。
对cookie进行IP绑定,(当然也可以获取用户客户端更多的其它信息进行同时绑定)可以根据用户的IP来判断这个cookie是不是来原始授权用户。

典型的应用示例:
用户设置了自动登录时保存自动登录信息:
$auto=I('post.auto');//用户设置了自动登录
if(!empty($auto)){
cookie('auto',encrypt(serialize($data)));//将登录信息保存到cookie,其中$data里含有加密后的帐号,密码,和用户的IP,这里的cookie已在全局中设置过期日期为一周
}
用户关闭浏览器再次访问网站时,进行自动登录
if (!is_login()) {//是否未登录状态?
$auth=cookie('auto');
if(!empty($auth)){//是否未有自动登录cookie?
$data=unserialize(decrypt($auth));
if(!empty($data) && !empty($data['username']) && !empty($data['password']) && !empty($data['last_login_ip'])){
$user=M('Member')->where(array('username'=>$data['username'],'password'=>$data['password']))->find();
if(!empty($user['id'])&&($user['last_login_ip']==get_client_ip())){//cookie帐号密码是否有效?//IP来源是否相同?
login_session($user['id'], $user['username'], $data['last_login_ip']);//用户自动登录成功
}
}
}
}
复制代码
优点:大多数场景下可使被XSS攻击盗取的cookie失效。缺点:由于IP存在多台电脑共用的可能,对绑定做不到十分精细。

3:为COOKIE添加httponly配置
最新版本的thinkphp已经支持此参数。
此参数可以保证cookie只在http请求中被传输,而不被页面中的脚本获取,现市面上绝大多数浏览器已经支持。
复制代码
4:HTML5值得观注的新特性:
<iframe src="http://alibaba.com" sandbox>
为iframe的增加的sandbox属性,可以防止不信任的Web页面执行某些操作.相信这个方法以后会被广泛使用。
复制代码
5:富文本过滤
富文本过滤是,XSS攻击最令人头疼的话题,不仅是小网站,就连BAT这样的巨头也是三天两头的被其困扰.

阅读全文

与thinkphpxss过滤器相关的资料

热点内容
狩猎2020女主扮演者 浏览:361
韩国免费看高清电影 浏览:410
小说主角石天 浏览:132
一个外国电影,一女的天天酗酒,有个懂事的儿子 浏览:135
惊变百度网盘完整版 浏览:432
韩国李采谭主演的作品星辰影视 浏览:116
快递员和原味女什么电影 浏览:785
看片网站绿色 浏览:15
免费看片网站下载 浏览:126
跟战争有关的电影免费 浏览:957
动作片里的床戏 浏览:520
韩国动画电影敏 浏览:328
娜塔莎是什么电影里的 浏览:956
毒咒1985主演员 浏览:181
女主被绑架被男主救了小说 浏览:568
最新电影2021年在线观看 浏览:533
附近电影院今日热映 浏览:310
穿越到抗战给延安送装备的小说 浏览:657
捉鬼英雄桃太郎 浏览:241