我想要在登录后动态加载我网站的某些内容。 $.post(...)
与验证用户凭据的servlet交互,然后$.load(url)
将内容从单独的页面加载到<div>
。我注意到,只要我知道从哪里获取内容,我就可以从chrome javascript控制台强制执行此行为,绕过验证。
如何阻止用户这样做?
答案 0 :(得分:5)
你做不到。
将文档传送到用户的浏览器后,它完全在用户的控制之下。他们可以运行他们喜欢的任何JS。
您在网络服务器上显示的网址是其公共接口。任何人都可以要求他们您可以使用身份验证/授权来限制获得响应的人员,但是您无法以运行您提供的特定JavaScript的用户为条件做出响应。
服务器需要授权用户每次传递受限数据。你不能这样做一次,然后相信浏览器强制执行它。
答案 1 :(得分:2)
您可以将秘密参数添加到您加载的网址中。通过在用户session
(服务器端)或数据库中定义随机变量,然后在验证成功后返回此变量,以便您的javascript代码可以在下次加载调用中使用该变量。在加载URL中,您可以在服务器端检查secret参数是否具有正确的值。
希望清楚。
答案 2 :(得分:1)
简单的答案是:你不能。
JavaScript在浏览器中运行,因此用户或应用程序可以随时运行自己的代码。这可以像添加新CSS或运行自己的JS代码一样简单。
您可以做的主要事情是确保在运行之前在服务器端验证所有请求,并且仅允许输入某些类型的信息(例如仅允许整数作为数字来阻止字符串到来通过)。
接近此类问题的是XSS或跨站点脚本。第三方将尝试将一些恶意代码注入受信任的网站,通常是某种形式的POST,以影响不同的用户。以下是有关此事的更多信息