人们可以用javascript做什么包括
What can people do with javascript includes?
我们正在与第三方讨论将他们的一些数据包含在我们的网站上,他们希望通过iframe来实现,但由于响应性原因,我不喜欢这样做。
他们提供的其他选项是包含一个javscript文件,该文件将使用一个参数来知道将结果放入哪个DOM元素
基本上,这让他们可以访问我们网站的javascript范围,如果他们愿意,可以在其中做一些事情,比如隐藏dom对象等。
我的问题是,有什么安全问题需要我考虑吗?例如,他们能否在javascript中编写软化代码,最终从我们的服务器读取.php文件,并从配置文件等中获取密码?或者他们唯一能做的事情与DOM有关?
他们可以:
-
控制用户的cookie,包括读取和修改他们
-
将用户重定向到他们想要的任何网站。
-
将他们想要的任何代码嵌入到页面中。
他们不能:
- 直接访问php文件
- 直接访问任何服务器文件
Javascript在浏览器中运行,而不是在服务器上运行。
您实际上是在给他们可信的XSS权限
如果你可以在网络浏览器中做一些事情(发帖子、"浏览"页面等),你可以使用JavaScript实现自动化。除非你(或你的用户)可以,否则他们将无法上传/修改你的PHP文件。
对用户来说,你赋予了他们模仿你的能力
对你来说,你赋予了他们模拟用户的能力。
例如,他们能否在javascript中编写软化代码,最终从我们的服务器读取.php文件,并从配置文件等中获取密码?
他们可以在你的页面上包含的JavaScript代码中为他们做任何你可以在该页面上的JavaScript代码里做的事情。所以这可以是客户端可以做的任何事情。它包括(例如)获取暴露在页面上的会话信息,并能够将这些信息发送到其他地方。
如果你不相信他们不会这么做,就不要在你的页面中包含他们的JavaScript。
我们正在与第三方讨论,将他们的一些数据纳入我们的网站
让他们将这些信息作为您通过ajax请求的数据而非代码提供,并让他们为来自您的源请求的有问题的URL启用跨源资源共享。然后,你知道你只是在获取他们的数据,而不是让他们运行代码。
请注意,使用JSONP而不是CORS将使它们能够再次运行代码,因此,如果您不信任CORS,则必须使用真正的ajax。
您不必担心PHP文件或配置文件,但窃取会话cookie或其他XSS风格的攻击肯定是个问题。
为什么他们不能/不会以API的形式提供数据?
- 这是什么 ==- javascript 运算符
- 我的单元测试选项是什么
- 全局变量和全局对象的属性之间有什么区别吗
- 打破承诺链的好方法是什么
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- 包括用于facebook评论框的JavaScript SDK
- Javascript中的空白是什么
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 在ember/handlers中使用value和valueBinding有什么区别
- 查找元素高度,包括边距
- 什么'在webpack外部设置中,reactDom和reactDom不同
- 在JavaScript中拆分日期字符串的更好方法是什么
- 为什么$.brower被弃用?还有什么更好的替代方案
- 在ng中给出文件路径包括什么
- 将文件夹中的所有图像包括在阵列中的最佳方式是什么
- 我可以在文档上使用什么来不时应用函数,包括未来元素
- 人们可以用javascript做什么包括
- 什么's是PHP哈希函数的Node.js等价项(包括salt和原始输出)
- 什么是一个很好的和简单的解决方案,包括不加载脚本
- 不包括JS有什么好处吗?每个页面上的CSS文件