如何通过XMLHttpRequest确保对Java Servlet的Javascript调用的安全,从而在手动将url输
How can I secure a Javascript call to a Java Servlet via XMLHttpRequest such that it cannot be used if the url is manually entered into a browser?
我目前有一个使用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;
}
我担心的是,如果有人手动输入完整的URL(例如"http://somesampleserver.com/Servlet?parm=something")在浏览器窗口中,也会显示响应。我如何防止这种情况发生?我只希望代码能够获得响应。
听起来您想检查这是否是XHR请求。您可以检查X-Requested-WithHeader
Boolean isXHR = "XMLHttpRequest".equals(request.getHeader("X-Requested-With"));
更多关于
似乎会话框架可以提供帮助。就像Shiro&弹簧安全。使用这些框架,只有有效的会话连接才能访问资源(URL)。否则,它将自动重定向到登录页面(自定义)。
相关文章:
- 将存储在变量中的 url 调用到 javascript 中
- 如何从struts2应用程序中的AJAX调用url调用servlet
- Angular为不同的url调用不同的控制器方法
- 将变量添加到 javascript url 调用
- 在 AngularJS 中调用 URL 调用函数
- 使用 ajax url 调用函数
- /r/ 在这个 ajax url 调用中是什么意思
- 从 JavaScript 中的 URL 调用 JSON 文件
- 如何在 ajax 中使用 Url 调用 handler.ashx
- 在Java中从某个URL调用脚本
- 使用JavaScript从URL调用和显示JSON数据
- 基于URL调用Ajax函数
- 如何将URL调用的HTML结果附加到DOM中
- 使用javascript从URL调用colorbox
- 通过URL调用javascript函数
- 带有多个页面的Ajax url调用
- 转换从URL调用的JSON数据并将其显示在HTML表中
- 需要从不安全的URL调用数据为chrome的GCM推送通知
- Angularjs用不同的url调用实例化的资源方法
- 如何使用_remap函数从ajax url调用Codeigniter函数