我遇到的问题是:“我在安全方面做得太多了吗?” 或“我做的安全性太低了吗?”
首先,我需要实现一个“发布消息”功能和一个“编辑消息”功能。
这是一个基本的表结构:
id, user_id, category_id, message_title, message_content
这两种方法看起来很容易实现,但是当我想到安全性或黑客时,我开始担心......这是我担心的事情:
关于留言:
- 用户会在数据库中提交超长消息吗?
- 用户会进行 SQL 注入来破坏我的数据库吗?
- 用户会继续发布消息,并使我的数据库充满吗?
- 用户会提交无效的
category_id
吗?(例如,已删除或尚未出现或此用户无法使用该类别)
关于编辑消息:
- 用户会编辑不属于他/她的消息吗?(破解
id
)- 用户会编辑无效的消息
id
吗?(例如,已删除或尚未出现)- 用户会在我的数据库中编辑 SQL 注入语句吗?
- 用户会在数据库中编辑长消息吗?
- 用户会编辑无效
category_id
吗?(例如,已删除或尚未出现或此用户无法使用该类别)
有几个问题我很担心。我可以将它分为两种类型:
- 技术安全问题。(例如SQL注入、消息长度)
- 程序逻辑问题。(例如,
category_id
不允许该用户使用)
我认为技术安全问题可以使用互联网上的一些标准库来实现,但程序逻辑问题让我抓狂。我应该实施所有检查吗?例如,在我执行相关的 SQL cmd 之前,检查 that category_id
is for thatuser
并检查是否id
存在等。可以实现,但是非常耗时。还是我只需要假设每个输入都是有效的,并且用户不会破解category_id
系统中的陌生人?请指教。