【问题标题】:Requesting a website by client side script = Cross Side Scripting Hack. But requesting a website by server side script is not a hack! Why?通过客户端脚本请求网站 = Cross Side Scripting Hack。但是通过服务器端脚本请求网站不是黑客!为什么?
【发布时间】:2010-06-13 17:58:31
【问题描述】:
通常,当我们想在同一页面中显示某些网页的内容时,我们会使用 ajax 请求。如果说,我使用 AJAX 请求不同域的网页,由于跨端脚本错误,这是不允许的。但是为什么允许通过服务器端页面访问。例如我们可以在 php 中使用 CURL 访问任何站点。?为什么此功能适用于服务器端脚本,而不适用于客户端脚本?
【问题讨论】:
标签:
php
javascript
server-side-scripting
client-side-scripting
【解决方案1】:
因为恶意脚本可以在未经用户许可的情况下打开外部页面。例如想象一个不安全的文本区域。如果此文本框的内容显示给其他用户,它可能包含连接到远程主机并向其发送敏感用户信息的脚本。这一切都归结为:服务器端 -> 你在控制,客户端 -> 公开,所以容易被滥用。
【解决方案2】:
见:
Same origin policy
在计算中,同源策略
是一个重要的安全概念
浏览器端编程数
语言,例如 JavaScript。这
策略允许脚本在
来自同一站点的页面
访问彼此的方法和
没有具体的属性
限制,但阻止访问
大多数方法和属性
不同网站上的页面。