如果服务器不过滤jsonp的回调参数,是否存在安全问题?
Is there any security issue if server do not filter JSONP's callback parameter?
假设我有一个JSONP api,使用如下(这是托管在我的服务器上):
http://www.example.com/jsonp.php?callback=fun
和服务器从不做任何安全检查回调的值,在这种情况下是'fun'。它会原样输出回调的值,输入什么,输出什么。即:
http://www.example.com/jsonp.php?callback=alert();fun
将输出如下内容:
alert();fun({/*data goes here*/});
通常情况下,这个parma不会被存储在数据库中。
问题是:这个JSONP api有任何安全问题吗?如果有,它怎么能被黑客利用呢?
XSS还是CSRF?
谁能给我展示一个用例吗?JSONP的安全问题总是在客户端(除非您允许这样的请求在服务器上存储任何内容,而您不应该这样做)—您在页面上执行或多或少受信任的外部脚本。
它基本上和eval
一样不安全。但是如果攻击者可以利用它们中的任何一个,那么其他是错误的(而不是eval
或JSONP本身)。
相关文章:
- 用于检查数组中是否存在元素的javascript自定义方法
- 是否存在React Native“;WEB代码安全防护”;
- 验证会话中是否存在对象's数组
- 如何查找值是否存在于二叉树中
- 检查是否存在使用chrome扩展的javascript库
- 是否存在Javascript Liferay Service库的文档?如何处理错误情况
- 测试mongo脚本中是否存在参数
- 检查搜索结果是否存在多次如果是,则在Javascript中只显示一个结果
- 检查数组中是否存在字符串值,并返回找到的数组值js
- 如何通过json对象选项卡中的Id来检查对象是否存在
- 检查是否存在任意控制器/操作
- Javascript滑块不滑动,如何判断是否存在JS冲突
- 根据手机上是否存在文件,在jQuery mobile中动态填充列表视图
- javascript测试是否存在两个标志中的任何一个
- 如何使用javascript检查移动sd卡中是否存在文件
- 当提供函数名称时,检查函数是否存在于同一作用域中
- 需要帮助使用JQuery.inArray()检查值是否存在
- 确定元素是否存在
- 使用javascript检查服务器上是否存在html文件
- 是否存在类似ExtJS 4的框架;正常的“;网站