首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何防止.load()从浏览器控制台?

如何防止.load()从浏览器控制台?
EN

Stack Overflow用户
提问于 2015-11-01 15:16:04
回答 3查看 188关注 0票数 2

我希望我的网站的一些内容是动态加载后,登录。$.post(...)与验证用户凭据的servlet交互,然后$.load(url)将内容从单独的页面加载到<div>中。我注意到,只要我知道从哪里获取内容,我就可以绕过验证,从控制台强制执行这种行为。

如何防止用户这样做?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-11-01 15:20:21

你不能这么做。

一旦文档被传递到用户的浏览器,它就完全在用户的控制之下。他们可以运行任何他们喜欢的JS。

you服务器上的URL是它的公共接口。任何人都可以请求。您可以使用身份验证/授权来限制谁获得响应,但不能根据用户运行所提供的特定JavaScript来设置该响应。

每当用户交付受限数据时,服务器都需要授权用户。您不能只这样做一次,然后信任浏览器来执行它。

票数 5
EN

Stack Overflow用户

发布于 2015-11-01 15:21:07

可以将秘密参数添加到加载的url中。通过在用户session (服务器端)或数据库中定义一个随机变量,然后在验证成功后返回该变量,以便您的javascript代码可以在下一次负载调用中使用该变量。在load中,您可以在服务器端检查机密参数是否具有正确的值。

希望一切都清楚。

票数 2
EN

Stack Overflow用户

发布于 2015-11-01 15:22:06

简单的答案是:你不能

JavaScript在浏览器中运行,因此用户或应用程序可以随时运行自己的代码。这可以像添加新的CSS或运行自己的JS代码一样简单。

禁用它的主要方法是确保在运行之前在服务器端验证所有请求,并且只允许对某些类型的信息进行输入(比如只允许整数作为数字阻止字符串通过)。

与这类问题相近的是XSS或跨站点脚本。第三方将尝试向受信任的网站注入一些恶意代码,通常是某种形式的帖子,以影响不同的用户。这是关于这件事的更多信息。

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

https://stackoverflow.com/questions/33463718

复制
相关文章

相似问题

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