如果用户可以知道项目的主键ID,那么在安全方面是不好的做法

时间:2015-03-31 23:23:16

标签: mysql database security encryption xss

我正在填充一个包含来自DB的项目列表的页面(比如main.htm - 每个项目都有一个链接,打开一个链接将显示该项目的内容。

我正在使用ajax打开这些项目。出于性能原因,我已将其ID的数据属性添加到main.htm中的每个项目。因此,如果main.htm列出了15个项目,则每个项目都有一个数据ID,例如第1项的data-id = 1,第2项的data-id = 2

和data-id将对应于数据库中的ID列(主键)。

这是一种不好的做法,安全方面吗?如果有,为什么?

或者更好的做法是加密数字而不是id,分配加密的id,例如xY4lf3K,它将在DB中解密为1000

1 个答案:

答案 0 :(得分:1)

这不应该是一种不安全的方式,只要你记住:

  1. 总是逃避&验证用户输入(记住,$ _GET参数是用户输入,不仅是$ _POST);
  2. 如果ID标识的资源是针对特定用户的,请检查是否是访问该用户的用户。
  3. 否则,没有问题。