Parameters 违反Web开发规则
从《纽约时报》查看:Parameters 违反Web开发规则,parameters,url-parameters,Parameters,Url Parameters,从《纽约时报》查看: http://homedelivery.nytimes.com/HDS/learnMorePopUp.do ?模式=普通。learnMorePopUp &productId=NDS &prodRate=7.40 我惊讶地发现,当我手动修改prodRate参数时,页面更新了: 介绍性订阅率 定期订阅率 你自己试试吧!现在,我还没有做太多的web开发,但我知道这可能不应该发生。所以我想知道: 什么样的实现会导致这种行为 您将如何修改页面以对最终用户隐藏此类敏感参数 他们可
http://homedelivery.nytimes.com/HDS/learnMorePopUp.do
?模式=普通。learnMorePopUp
&productId=NDS
&prodRate=7.40
我惊讶地发现,当我手动修改prodRate
参数时,页面更新了:
- 介绍性订阅率
- 定期订阅率
- 什么样的实现会导致这种行为
- 您将如何修改页面以对最终用户隐藏此类敏感参数
至于其他选择,他们可以考虑发布信息或将信息放入cookie中。两者都不是绝对可靠的。您无法获得包含帖子的新窗口,用户可以关闭Cookie。那么,您是否确实尝试过订购它?它可能会验证后端的输入
至于其他选择,他们可以考虑发布信息或将信息放入cookie中。两者都不是绝对可靠的。您无法获得包含帖子的新窗口,用户可以关闭cookies。您无法从该页面订购,因此我没有看到安全漏洞。是的,这很俗气,但如果实际的订单流构建得如此糟糕,我会更加担心。它确实可以很容易地在一个地方更新速率并传递值,这样我就可以看到它是如何发生的
我们有一些评级页面,它们的功能几乎相同。它们没有连接到实际的采购流程,所以参数是可以的。如果客户端想通过编辑URL来混淆自己,那么就这样吧。。。实际的订单流都是数据库驱动的,用户编辑永远不可信。您不能从该页面订购,因此我没有看到安全漏洞。是的,这很俗气,但如果实际的订单流构建得如此糟糕,我会更加担心。它确实可以很容易地在一个地方更新速率并传递值,这样我就可以看到它是如何发生的
我们有一些评级页面,它们的功能几乎相同。它们没有连接到实际的采购流程,所以参数是可以的。如果客户端想通过编辑URL来混淆自己,那么就这样吧。。。实际的订单流程都是由数据库驱动的,用户编辑永远不可信。我发现了各种这样的错误做法。我见过网站在Querystring中传递整个SQL查询,然后执行这些查询。我还记得在querystring找到一家网上商店,它通过价格传递信息。我把一个值改为负值,果然,结账时的价格是负数!不过我没有再进一步——从技术上讲,这是一种欺诈,不值得冒险。我发现了各种像这样的糟糕做法。我见过网站在Querystring中传递整个SQL查询,然后执行这些查询。我还记得在querystring找到一家网上商店,它通过价格传递信息。我把一个值改为负值,果然,结账时的价格是负数!不过,我没有进一步说明——从技术上讲,这是欺诈行为,不值得冒险。您可能需要重新表述您的问题,因为我能想到的唯一答案并不太有启发性: 问:什么样的实现会导致这种行为?
答:一种允许用户输入控制内部可信行为的方法。如果你问“为什么有人会这样做”,我通常认为这是一种误解。代码作者通常没有意识到用户可以(a)控制值和/或(b)甚至发现它的存在。最常见的情况是,我将其视为重定向—单击一个按钮,服务器确定数量,然后将浏览器重定向到维护该值的新页面 问:您将如何修改页面以对最终用户隐藏此类敏感参数?
答:不要以最终用户可编辑的方式存储值。如果服务器上有可用的存储(如Servlet引擎),请将其存储在会话上下文中。如果您没有良好的会话机制,可以将其存储在签名或HMAC'd cookie中。您可能需要重新表述您的问题,因为我能想到的唯一答案不是很有启发性: 问:什么样的实现会导致这种行为?
答:一种允许用户输入控制内部可信行为的方法。如果你问“为什么有人会这样做”,我通常认为这是一种误解。代码作者通常没有意识到用户可以(a)控制值和/或(b)甚至发现它的存在。最常见的情况是,我将其视为重定向—单击一个按钮,服务器确定数量,然后将浏览器重定向到维护该值的新页面 问:您将如何修改页面以对最终用户隐藏此类敏感参数?
答:不要以最终用户可编辑的方式存储值。如果服务器上有可用的存储(如Servlet引擎),请将其存储在会话上下文中。如果您没有良好的会话机制,可以将其存储在签名或HMAC'd cookie中。但是,修改后的页面怎么办?它看起来不像