我想通过JSONP提供一个webservice,并且想知道如果我需要从回调参数中清除值。
原文链接:https://www.f2er.com/json/288555.html我目前的服务器端脚本目前看起来像这样(或多或少,代码在PHP中,但可以是任何事情。):
header("Content-type: application/json; charset=utf-8"); echo $_GET['callback'] . '(' . json_encode($data) . ')';
这是一个经典的XSS漏洞。
如果我需要清理它,那怎么办?我无法找到关于什么可以允许回调字符串的足够的信息。我从Wikipedia引用:
While the padding (prefix) is typically the name of a callback function that is defined within the execution context of the browser,it may also be a variable assignment,an if statement,or any other Javascript statement prefix.