假设我有一个使用这样的JSONP api(这是托管在我的服务器上):
http://www.example.com/jsonp.php?callback=fun
并且服务器永远不会对回调的值进行任何安全检查,在这种情况下,这些值很有趣#39; 它会按原样输出回调值,输入什么,输出什么。 那就是:
http://www.example.com/jsonp.php?callback=alert();fun
将输出如下内容:
alert();fun({/*data goes here*/});
在一般情况下,此parma不会存储在数据库中。
问题是:这个JSONP API有什么安全问题吗?
如果有,黑客如何使用它?
XSS还是CSRF?
有人可以在这里向我展示一个用例吗?
答案 0 :(得分:2)
JSONP的安全问题始终在客户端(除非您允许此类请求在您的服务器上存储任何内容,您不应该这样做) - 您正在执行更多 - 或在您的页面上没有受信任的外国脚本。
它基本上和eval
一样不安全。但是如果攻击者可以使用其中任何一个,那么其他东西是错误的(本身不是eval
或JSONP)。