我目前有一个使用javascript的网页,它可以执行以下操作:
function callSomething(parm) {
req = false;
if (window.XMLHttpRequest) {
try {
req = new XMLHttpRequest();
} catch (e) {
req = false;
}
} else if (window.ActiveXObject) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
req = false;
}
}
}
if (req) {
var url_str = "/Servlet?parm=" + parm;
req.open("GET", url_str, false);
req.onreadystatechange = processReqChange;
req.send(null);
// process the response
}
return something;
}我担心的是,如果有人在浏览器窗口中手动输入完整的网址(例如"http://somesampleserver.com/Servlet?parm=something"),响应也会显示出来。我如何防止这种情况发生?我只希望代码能够获得响应。
发布于 2014-10-20 14:02:44
听起来您想检查这是否是XHR请求。您可以检查X-Requested-With标头
Boolean isXHR = "XMLHttpRequest".equals(request.getHeader("X-Requested-With"));有关该here的更多信息
发布于 2014-10-20 16:34:26
似乎会话框架可以提供帮助。比如Shiro & Spring security。使用这些框架,只有有效的会话连接才能访问资源(URL)。否则,会自动跳转到登录页面(自定义)。
https://stackoverflow.com/questions/26459059
复制相似问题