python - 把主键暴露在URL中是好的选择吗?
黄舟
黄舟 2017-04-17 15:14:17
0
6
727

Django为每个表自动生成了id字段,但这个问题跟Django联系不大。

假设有一个Article表,包含主键,那么我在url访问时直接使用该表的主键id,从安全性和性能方面考虑,这样好吗?比如说,Article表中有一条记录,id10051,而网址http://example.com/article/10051来显示该文章。

这样做能方便用户访问,因为知道某个文章的id,可以猜测其他文章的id来访问不同文章,但是直接把主键暴露在url中,会不会让黑客很容易能猜到数据库的结构从而引起安全方面的问题。

这样的应用场景,有没有什么要注意的或者一般方案呢?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回覆(6)
Ty80

並沒有什麼不妥的地方。但是要考慮場景。例如电商系统中,如果查看訂單號,把自增主鍵暴漏了,那無疑是暴露了平台的銷售情況,給競爭對手來說無疑是絕佳的資料。但是至於安全方面卻沒有什麼值得注意的地方,無非還是防止注入什麼的。再例如多用戶部落格系統,暴漏id就無疑暴漏了平台的總註冊用戶數、總文章數、總發文、留言回覆數等。同樣也對安全沒有什麼影響。

黄舟

太少的資訊也不會引起猜測表結構

巴扎黑

使用UUID。

巴扎黑

如果是公開的問題不大的。但如果是涉及權限,例如 id A不能被用戶x 看到,那麼就需要注意,因為用戶可以透過改動id來跳到不同的文章(暫且這麼叫)

伊谢尔伦

你的擔心,主要在防範駭客入侵上面。
為什麼不找這方面的資料?
例如: PPTP、L2TP、SSL、...?

阿神

來一次加隨機鹽的hash不就行了,隨機鹽直接明文保存在客戶端session裡就行了。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板