正确验证针对数据库的HTML POST

时间:2017-05-09 22:22:04

标签: python html mysql django

我有一个使用Django 1.9和python 2.7构建的网站。在我的网站上,我有一个结帐页面,用户可以从中选择值1. select 2. radio 3. checkbox字段。

所选的每个值都在输入参数的value部分附加了特定的美元金额。我已在数据库中为每个可能的选择创建了项目,并希望在提交最终成本值之前使用浏览器代码编辑器验证信息是否未编辑。

以下是我在选择菜单中的一个选项:

<option name="apartment"  value="600" id="4p4rtm3nt">Apartment Building</option>

我的数据库(MySQL)中有一个对象,valuenameid都匹配此选项。

在计算所有项目的费用时,验证此信息是否未更改的最有效/最安全的方法是什么?

个人想法

我在考虑只是拉出id,name和&amp;来自POST的值,然后确保它们都匹配我的数据库中的对象。这似乎是广泛而低效的......

一些人是如何做到的?我尝试查看一些带结帐页面的网站,似乎无法弄清楚他们的做事方式。

P.S。我没有使用Django表格

1 个答案:

答案 0 :(得分:0)

仅使用id属性标识客户端选择的值。使用POST对象中的id,您可以简单地查找记录并根据这些结果计算成本。客户端无法浏览器编辑数据库中的值。

如果您真的关心性能影响(过早优化是万恶之源),请确保您的表在id上编入索引。 Django已经为你做了这件事。