我希望我的网站的一些内容是动态加载后,登录。$.post(...)
与验证用户凭据的servlet交互,然后$.load(url)
将内容从单独的页面加载到<div>
中。我注意到,只要我知道从哪里获取内容,我就可以绕过验证,从控制台强制执行这种行为。
如何防止用户这样做?
发布于 2015-11-01 07:20:21
你不能这么做。
一旦文档被传递到用户的浏览器,它就完全在用户的控制之下。他们可以运行任何他们喜欢的JS。
you服务器上的URL是它的公共接口。任何人都可以请求。您可以使用身份验证/授权来限制谁获得响应,但不能根据用户运行所提供的特定JavaScript来设置该响应。
每当用户交付受限数据时,服务器都需要授权用户。您不能只这样做一次,然后信任浏览器来执行它。
发布于 2015-11-01 07:21:07
可以将秘密参数添加到加载的url中。通过在用户session
(服务器端)或数据库中定义一个随机变量,然后在验证成功后返回该变量,以便您的javascript代码可以在下一次负载调用中使用该变量。在load中,您可以在服务器端检查机密参数是否具有正确的值。
希望一切都清楚。
发布于 2015-11-01 07:22:06
简单的答案是:你不能。
JavaScript在浏览器中运行,因此用户或应用程序可以随时运行自己的代码。这可以像添加新的CSS或运行自己的JS代码一样简单。
禁用它的主要方法是确保在运行之前在服务器端验证所有请求,并且只允许对某些类型的信息进行输入(比如只允许整数作为数字阻止字符串通过)。
与这类问题相近的是XSS或跨站点脚本。第三方将尝试向受信任的网站注入一些恶意代码,通常是某种形式的帖子,以影响不同的用户。这是关于这件事的更多信息。
https://stackoverflow.com/questions/33463718
复制相似问题