首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过XMLHttpRequest保护对Java Servlet的Javascript调用,以便在浏览器中手动输入url时无法使用它?

如何通过XMLHttpRequest保护对Java Servlet的Javascript调用,以便在浏览器中手动输入url时无法使用它?
EN

Stack Overflow用户
提问于 2014-10-20 13:29:14
回答 2查看 125关注 0票数 1

我目前有一个使用javascript的网页,它可以执行以下操作:

代码语言: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"),响应也会显示出来。我如何防止这种情况发生?我只希望代码能够获得响应。

EN

回答 2

Stack Overflow用户

发布于 2014-10-20 14:02:44

听起来您想检查这是否是XHR请求。您可以检查X-Requested-With标头

代码语言:javascript
运行
复制
Boolean isXHR = "XMLHttpRequest".equals(request.getHeader("X-Requested-With"));

有关该here的更多信息

票数 0
EN

Stack Overflow用户

发布于 2014-10-20 16:34:26

似乎会话框架可以提供帮助。比如Shiro & Spring security。使用这些框架,只有有效的会话连接才能访问资源(URL)。否则,会自动跳转到登录页面(自定义)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26459059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档