Javascript 如果服务器不过滤JSONP';s回调参数?

Javascript 如果服务器不过滤JSONP';s回调参数?,javascript,jquery,ajax,jsonp,Javascript,Jquery,Ajax,Jsonp,假设我有一个JSONPAPI,它使用如下方式(这是托管在我的服务器上的): 而且服务器从不对回调的值进行任何安全检查,这在本例中是“有趣的”。 它将按原样输出回调的值,输入什么,输出什么。 即: 将输出如下内容: alert();fun({/*data goes here*/}); 在一般情况下,这个parma不会存储在数据库中 问题是:这个JSONPAPI有任何安全问题吗 如果有,黑客如何使用它 XSS还是CSRF 有人能在这里给我看一个用例吗?的安全问题总是在客户端(除非您允许这样的请求在

假设我有一个JSONPAPI,它使用如下方式(这是托管在我的服务器上的):

而且服务器从不对回调的值进行任何安全检查,这在本例中是“有趣的”。 它将按原样输出回调的值,输入什么,输出什么。 即:

将输出如下内容:

alert();fun({/*data goes here*/});
在一般情况下,这个parma不会存储在数据库中

问题是:这个JSONPAPI有任何安全问题吗

如果有,黑客如何使用它

XSS还是CSRF

有人能在这里给我看一个用例吗?

的安全问题总是在客户端(除非您允许这样的请求在您的服务器上存储任何内容,而您不应该这样做)-您在页面上执行的是或多或少受信任的外部脚本

它基本上和
eval
一样不安全。但是,如果攻击者可以利用它们中的任何一个,那么其他东西就错了(不是
eval
或JSONP本身)

http://www.example.com/jsonp.php?callback=alert();fun
alert();fun({/*data goes here*/});