23、Web开发中的GET请求问题及视图模板使用指南

Web开发中的GET请求问题及视图模板使用指南

1. GET请求的问题

在Web开发中,HTTP GET和POST请求有着本质的区别。按照规范,GET请求应该用于从服务器检索信息,而POST请求用于请求服务器上的状态更改。然而,许多Web开发者广泛忽略了这一规则。

例如,在线商店中的“添加到购物车”链接,点击该链接通常会生成一个GET请求,从而改变应用程序的状态(向购物车添加商品)。这种情况在过去一直存在,但在2005年春天,Google发布了Google Web Accelerator(GWA)后,问题变得更加明显。GWA是一个客户端代码,它通过预缓存页面来加速用户的浏览。当用户阅读当前页面时,加速器软件会扫描页面上的链接,并在后台读取和缓存相应的页面。这就导致了在用户还在考虑商品选择时,加速器可能会自动点击“添加到购物车”链接,不断向购物车中添加商品。

此外,搜索引擎和其他爬虫也会不断跟踪公共网页上的链接。通常,那些会引发应用程序状态改变的链接(如“添加到购物车”)在用户开始交易之前不会暴露,所以爬虫不会看到或跟踪这些链接。但GWA运行在客户端,使得这些链接突然被暴露出来。

如果应用程序中包含危险链接(如“删除订单”、“解雇员工”或“发射导弹”),就存在这些链接被意外跟踪的风险,从而导致应用程序执行危险操作。

2. 解决GET请求问题的方法

为了有效消除危险链接带来的风险,可以遵循一个简单的规则:绝不允许在没有人为干预的情况下直接跟踪执行危险操作的 <a href="..." 链接。以下是一些具体的实践技术:
- 使用表单和按钮

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值