2011-06-28 80 views
0

我有一个带有一个textarea字段的表单。该字段设置为接受任何内容,并在提交时将输入存储在数据库中。该代码然后公开为url:domain.com/asd。我没有做任何类型的strip_tagshtmlentities或任何类型的xss预防。在mysql数据库中存储表单数据 - XSS漏洞

我的问题是,这可能会造成什么危害。用户可以使用任何类型的xss在输入或输出期间从数据库获取信息。

+0

可能重复的[XSS背后的一般概念是什么?](http://stackoverflow.com/questions/2233015/what-is-the-general-concept-behind-xss) – BalusC

+0

正在存储的数据,是什么它被用于? –

+0

@dark site builder – Pinkie

回答

2

XSS不会对您的服务器进行任何可能的攻击,这在没有XSS的情况下是不可能的。 XSS所做的是让未经授权的用户充当授权用户。如果您的网站没有用户身份验证,则XSS通常不是威胁。

+0

。许多博客允许您发表评论而无需身份验证(作为匿名用户),并且容易受到XSS的攻击。 – Alfred

+0

@Alfred:*你*并不脆弱;你的用户可能是。所有XSS都会让攻击者执行通常需要验证的操作。它不会启用SQL注入式攻击,这正是问题的症结所在。 (也就是说,没有理由不对输出进行编码;它永远不会受到伤害,并且可以防止您忘记考虑的攻击。) – Tgr

+0

当您拥有XSS时,您的Cookie可能会被盗用,但是您正确地使用了SQL注入部分。当cookies被盗时,他们可以为您的服务做很糟糕的事情。例如购买东西,你可能会为此付出代价...... – Alfred

2

你可能会在存储XSS攻击严重威胁,存储跨站脚本:

发生存储跨站脚本漏洞时,恶意用户可以存储一些攻击,这将在以后的时间被要求一些其他不知情的用户。攻击实际上是以某种方式存储的,以后再执行。

因此,如果恶意代码在文本区域中并且存储它。在稍后显示存储在数据库中的数据时,就像您正在执行代码一样。除此之外,每当您在SQL查询中使用textarea中的数据时,还有很多其他方式可以与数据库一起玩。

1

当您接受来自用户的输入,你至少应该:

  • 数据库使用PDO防止SQL-注射。
  • 使用filter防止XSS

否则你的代码将是不安全的地狱。

我建议您阅读OWASP以了解更多有关很多漏洞的信息。尤其是页面OWASP top 10是一个必读。