Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 安全问题,需要在不重新加载的情况下更改地址栏。Can';我似乎不太可能到达那里_Javascript_Jquery_Html - Fatal编程技术网

Javascript 安全问题,需要在不重新加载的情况下更改地址栏。Can';我似乎不太可能到达那里

Javascript 安全问题,需要在不重新加载的情况下更改地址栏。Can';我似乎不太可能到达那里,javascript,jquery,html,Javascript,Jquery,Html,假设我们有地址栏: 这一切都很好,但如果用户将“lesson1”改为“lesson2”,他们会突然上一堂从未付费的课 我们正在使用jquery和aspx技术 我试过使用: window.history.pushState({}, 'lesson1', 'blahblah'); 这仅替换“?”后面的数据,而不是文件夹路径,将其转换为: https://blablabla.com/lessons/lesson1/blahblah 但他们仍然可以用第二课代替第1课,这给了他们教训 同样,如果他们在

假设我们有地址栏:

这一切都很好,但如果用户将“lesson1”改为“lesson2”,他们会突然上一堂从未付费的课

我们正在使用jquery和aspx技术

我试过使用:

window.history.pushState({}, 'lesson1', 'blahblah');
这仅替换“?”后面的数据,而不是文件夹路径,将其转换为:

https://blablabla.com/lessons/lesson1/blahblah
但他们仍然可以用第二课代替第1课,这给了他们教训

同样,如果他们在浏览器上点击“后退”箭头键,他们仍然可以在我试图修改查询字符串之前看到它

任何建议都会非常有用,但它们必须是跨浏览器的,而不仅仅限于HTML5


我们愿意在必要时下载插件,也愿意以某种方式将插件发送到一个模糊的链接,该链接仍然知道该做什么,但这对于我们正在尝试做的事情来说是相当困难的。

如果用户有登录名,那么您应该检查他们是否购买了lession 2,如果没有,您应该返回一个错误,为此,您需要检查您的数据库,以验证此用户是否实际购买了lession 2或lession 3等,如果您发布代码,我们可以给出更好的答案

你的观念不好。你从不相信客户。您始终需要检查用户是否能够在您的后端或其他机制上执行操作,而不是通过简单的url链接。我们只向他们显示他们已付费的课程,但所有课程的路径都是相同的减去课程名称。我们有代码来混淆我们通过查询链接发送的数据,但我认为我们无法混淆文件夹和所有内容的整个路径。如果您的用户调用ajax,您应该授权,并且您知道是否返回任何数据。如果登录的用户发送无效url,您应该返回错误。他们会转到位置路径:/lessons/lesson1/blahblah,并且它会加载该课程所代表的aspx页面,在将他们送到那里时不存在ajax调用。这就是为什么他们可以直接转到/lessons/lesson2/blahblah并获得该课程。好的,所以如果用户未经允许调用url进行付费查看,您应该返回403错误页面。