我正在使用 Django 1.9 和 python 2.7 构建一个网站。在我的网站上,我有一个结帐页面,用户可以从 1. select
2. radio
3. checkbox
字段中选择值。
每个选定的值都在输入参数的 value
部分附加了特定的美元金额。我已为数据库中的每个可能选择创建了项目,并希望在提交最终成本值之前验证该信息是否未使用浏览器代码编辑器进行编辑。
这是我在选择菜单中的一个选项的样子:
<option name="apartment" value="600" id="4p4rtm3nt">Apartment Building</option>
我的数据库 (MySQL) 中有一个对象,其 value
、name
和 id
均与此选项匹配。
在计算所有商品的成本时,验证此信息是否未更改的最有效/最安全的方法是什么?
<小时/>个人想法
我正在考虑从 POST 中提取 id、名称和值,然后确保它们都与我的数据库中的对象匹配。这看起来既广泛又低效......
你们中的一些人是如何做到的?我尝试查看一些带有结帐页面的网站,但似乎无法弄清楚他们的操作方式。
P.S.我没有使用 Django 表单
最佳答案
仅使用id
属性来识别客户端选择的值。使用 POST 对象中的 id
,您可以简单地查找记录并根据这些结果计算成本。客户端无法通过浏览器编辑数据库中的值。
如果您确实关心性能影响(过早的优化是万恶之源),只需确保您的表在 id
上建立索引即可。 Django 已经为你做到了这一点。
关于python - 根据数据库正确验证 HTML POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43880770/