当前位置: 首页 > 面试题库 >

CodeIgniter-为什么使用xss_clean

臧兴学
2023-03-14
问题内容

如果我正在清理我的数据库插入,并且转义了我编写的HTML,htmlentities($text, ENT_COMPAT, 'UTF-8')那么是否还可以使用xss_clean过滤输入内容?它还能带来什么其他好处?


问题答案:

xss_clean()很广泛,而且很愚蠢。此功能的90%不能阻止xss。比如找这个词alert
却没有document.cookie。没有黑客会使用alert他们的漏洞,他们会使用xss劫持cookie或读取CSRF令牌来制作XHR。

但是,运行htmlentities()htmlspecialchars()与之冗余是多余的。其中A的情况下xss_clean()解决这一问题,htmlentities($text, ENT_COMPAT, 'UTF-8') 失败如下:

<?php
print "<img src='$var'>";
?>

一个简单的poc是:

http://localhost/xss.php?var =
http:

//domain/some_image.gif’%20onload = alert(/ xss /)

这会将onload=事件处理程序添加到image标签。一种停止这种形式的xss的方法是htmlspecialchars($var,ENT_QUOTES);
或在这种情况下xss_clean()也可以防止这种情况。

但是,引用xss_clean()文档:

当然,没有什么是百分百的万无一失的,但是我无法使任何东西通过过滤器。

话虽如此,XSS output problem 不是 一个input problem。例如,此函数无法考虑变量已在<script>标签或事件处理程序中。它还不会停止基于DOM的XSS。您需要考虑 如何使用数据
才能使用最佳功能。过滤输入中的所有数据是一个 坏习惯 。它不仅不安全,而且还会破坏数据,从而使比较变得困难。



 类似资料:
  • CodeIgniter 是一个应用程序框架 CodeIgniter 是一个为用 PHP 编写网络应用程序的人员提供的工具包。它的目标是实现让你比从零开始编写代码更快速地开发项目,为此,CI 提供了一套丰富的类库来满足通常的任务需求,并且提供了一个简单的接口和逻辑结构来调用这些库。CodeIgniter 可以将需要完成的任务代码量最小化,这样你就可以把更多的精力放到项目的开发上了。 CodeIgni

  • 本文向大家介绍什么是PHP CODEIGNITER?,包括了什么是PHP CODEIGNITER?的使用技巧和注意事项,需要的朋友参考一下 简介 CodeIgniter是一个PHP框架,用于使用PHP(一种服务器端脚本语言)构建动态网站。CodeIgniter为您提供了一种构建网站的简单方法。 ``建立网站需要很多时间,因为我们不得不一次又一次地编写很多代码,有时这很忙。CodeIgniter框架

  • Apache CouchDB是最新的数据库之一。 CouchDB具有无模式的文档模型,更适合常见应用。可支持非常大数据量查询。 使用CouchDB的主要原因是什么? CouchDB易于使用。 有一个单词可以描述CouchDB - “Relax”。 它也是组成CouchDB官方标志一个单词。 “Apache CouchDB已经开始了,现在是放松时间。” CouchDB具有基于HTTP的REST AP

  • DevOps允许敏捷开发团队实施持续集成和持续交付。这有助于他们更快地将产品推向市场。 其他一些的重要原因是: 可预测性:DevOps可以显着降低新版本的故障率 再现性:版本一切,以便可以随时恢复早期版本。 可维护性:在新版本崩溃或禁用当前系统的情况下,可以毫不费力地进行恢复。 交付/上市时间:DevOps通过简化的软件交付将上市时间缩短至50%。对于数字和移动应用尤其如此。 更高的质量:DevO

  • Akka平台提供哪些有竞争力的特性? Akka提供可扩展的实时事务处理。 Akka为以下目标提供了一致的运行时与编程模型: 垂直扩展(并发) 水平扩展(远程调用) 高容错 这个模型是唯一需要学习和掌握的,它具有高内聚和高一致的语义。 Akka是一种高度可扩展的软件,这不仅仅表现在性能方面,也表现在它所适用的应用的大小。Akka的核心——akka-actor是非常小的,可以方便地加入你的应用中,提供

  • 问题内容: 我经常在PHP中看到包含include.inc文件的示例。.inc是什么意思?它的作用是什么?使用它的缺点和优点是什么? 问题答案: 它没有任何意义,只是一个文件扩展名。如果扩展名是.inc的文件被设计为包含在其他PHP文件中,这是某些人的惯例,但这只是惯例。 它确实存在一个可能的缺点,即通常没有将服务器配置为将.inc文件解析为php,因此,如果该文件位于您的Web根目录中,并且您的