当前位置: 首页 > 知识库问答 >
问题:

在我特定的PHP应用程序中,我还能对XSS漏洞做些什么?

端木志诚
2023-03-14

我已经阅读了OWASP的XSS预防备忘单,但我并不真正认识到我的应用程序中有这些规则。我不觉得我有那些规则中指出的任何漏洞。

在我的情况下,我应该关注XSS吗?我还能做些什么来保护自己免受XSS的侵害?

共有1个答案

赫连俊悟
2023-03-14

我的所有用户输入都用htmlentities()进行了消毒。够了吗?(我使用准备好的语句进行SQL注入)

不。首先,你应该在输出上过滤,而不是在输入上过滤。在编程中,永远不要相信任何数据,即使是来自您自己数据库的数据!对于输入,您只需要将其转义,以便在SQL、日志等中使用。但是您还必须过滤基本的html+一些特殊字符:\0&<>()+-=“'\Output。htmlentities()是不够的。

假设你在网站上有一个图像:

<img src="xxx" onload="image_loaded({some_text_from_db});">

总是在服务器端检查数据,如果您也想在客户端检查数据,也可以,但总是在服务器端检查数据。许多现代浏览器(chrome,ff,opera)允许用户“动态”编辑页面,这样他们就可以轻松删除maxlength属性。

除了来自数据库的数据之外,唯一显示给用户的用户输入是通过ajax发送到服务器,使用htmlentities进行消毒,并使用text()而不是html()(使用jQuery)在DOM中重新引入

来自。text()jquery文档:

  • 输入用户->筛选器->应用程序
  • 输出应用程序->筛选器->用户

不仅仅是输入过滤。

 类似资料:
  • 讲师:gh0stkey 整理:飞龙 协议:CC BY-NC-SA 4.0 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为 XSS 。恶意攻击者往 Web 页面里插入恶意 JavaScript 代码,当用户浏览器该页之时,嵌入 Web 页面里的代码会被执行,从而达到恶意攻击用户的目的

  • 问题内容: 我刚接触PHP,但听说XSS漏洞很严重。我知道它们是什么,但是如何保护我的网站? 问题答案: 为了防止XSS攻击,您只需要检查并正确验证计划使用的所有用户输入数据,并且不允许从该表单中插入html或javascript代码。或者,您可以使用htmlspecialchars()将HTML字符转换为HTML实体。因此,像<>这样的标记标记开始/结束的字符将变成html实体,并且您可以使用s

  • 问题内容: 首先了解应用程序的一些背景知识。我有一个应用程序通过线程池并行处理许多独立的任务。现在线程池正在挂起。 以下是我的线程转储的摘录,我的pool-2中的所有线程都被“ pool-2-thread-78”阻止了。尝试写入控制台似乎已锁定,我觉得这很奇怪。谁能为我说明情况? 编辑 :平台详细信息Java版本“ 1.6.0_07” Java(TM)SE运行时环境(内部版本1.6.0_07-b0

  • 我试图隐藏Actionbar并改用工具栏,但如果我更改Theme.appcompat.light.NoActionBar,它确实会隐藏,但应用程序在行setContentView(r.layout.activity_main)处崩溃; 尽管它确实使用getSupportActionBar()隐藏。hide();但我不能用这个代码 Toolbar Toolbar=(Toolbar)findViewB

  • Checkmarx在我的Controller类中为以下方法提供了XSS漏洞。具体来说:此元素的值(ResultsVO)随后在代码中流动,而没有经过适当的清理或验证,最终在方法中显示给用户: ResultsVO对象有很多String属性,我只是想知道是否有一种优雅的方法来编码它们以防止此漏洞。

  • 我有一个主活动MainActivity,它是我的android应用程序的入口点。它通过发射器正确发射。然而,当我尝试执行startActivity时,我看到活动试图启动的一些调试,一些代码正确启动,但MainActivity从未启动。 我认为这可能与意图有关: 对吗? 从内部活动来看,我有 我甚至看到 10-11 22:23:46.026:INFO/ActivityManager(472):从pi