javascript - 安全问题,需要更改地址栏而不重新加载。似乎无法到达那里
问题描述
假设我们有地址栏:https ://blablabla.com/lessons/lesson1/?data=2&name=blahblahblah
这一切都很好,但是如果用户将“课程 1”更改为“课程 2”,他们会突然上一堂他们从未付费过的课程。
我们正在使用 jquery 和 aspx 技术。
我试过使用:
window.history.pushState({}, 'lesson1', 'blahblah');
这只会替换“?”之后的数据。而不是文件夹路径,将其变成:
https://blablabla.com/lessons/lesson1/blahblah
但他们仍然可以用第 2 课替换第 1 课,这给了他们上课......
同样,如果他们在浏览器上点击“后退”箭头键,他们仍然可以在我尝试修改查询字符串之前看到它。
任何建议都会非常有帮助,但它们需要跨浏览器,而不仅限于 HTML5。
如果有必要,我们对下载插件的想法持开放态度,也对以某种方式将它们发送到仍然知道该怎么做的模糊链接的想法持开放态度,但这对于我们正在尝试做的事情来说相当困难。
解决方案
如果用户有登录名,那么您应该检查他们是否购买了第 2 课,如果没有,您应该返回错误,因为您需要检查您的数据库以验证该用户是否实际购买了第 2 课或第 3 课等,如果您发布您的代码,我们可以提供更好的答案。
推荐阅读
- python - 插入语句不起作用,语法接近“?”:
- regex - 正则表达式到有限自动机
- powershell - 如何使用 PowerShell(服务器 smtp)发送电子邮件
- azure-cosmosdb - 在 cosmos db 中添加日期过滤器不高效
- angularjs - 访问从 angularjs 中的控制器检查的复选框
- css - 您如何正确地将 CSS 类添加到反应组件(带有损坏的示例)?
- python - 在与其他数据框列中的任何其他值匹配的列中查找行号
- javascript - Firesbase orderByChild 不适用于时间戳
- python - 通过 pyodbc 将 Python 连接到 FileMaker。获取架构不匹配错误。有什么建议吗?
- docker - Docker Compose 入口点文件