Django
为每个表自动生成了id字段,但这个问题跟Django联系不大。
假设有一个Article表
,包含主键
,那么我在url访问时直接使用该表的主键id
,从安全性和性能
方面考虑,这样好吗?比如说,Article表中有一条记录,id
为10051
,而网址http://example.com/article/10051
来显示该文章。
这样做能方便用户访问,因为知道某个文章的id,可以猜测其他文章的id来访问不同文章,但是直接把主键暴露在url中,会不会让黑客很容易能猜到数据库的结构从而引起安全方面
的问题。
这样的应用场景,有没有什么要注意的或者一般方案呢?
PHP中文网2017-04-17 15:16:17
並沒有什麼不妥的地方。但是要考慮場景。例如电商系统
中,如果查看訂單號,把自增主鍵暴漏了,那無疑是暴露了平台的銷售情況,給競爭對手來說無疑是絕佳的資料。但是至於安全方面卻沒有什麼值得注意的地方,無非還是防止注入什麼的。再例如多用戶部落格系統,暴漏id就無疑暴漏了平台的總註冊用戶數、總文章數、總發文、留言回覆數等。同樣也對安全沒有什麼影響。