假设我有以下表格:
1. comments
: c_id
, a_id
, body
2. articles
: a_id
, title
,body
我有一个评论系统(类似于 SO)。但是当然我必须提供要发布的文章的 ID,并且有很多方法可以做到这一点。
因此,我采用了简单的方法,即使用文章 ID 创建一个隐藏输入,就像这样:
<input type="hidden" name="article_id" value="1" />
然后简单地将其发布到服务器端。并使用 MySQL 插入到表中。但是,不良用户是否可以更改隐藏输入中的数据?
例如,如果他更改隐藏的输入并输入无效的 ID,或者不存在的文章或我真正不需要的任何内容。这是我应该考虑的事情吗?因为唯一会发生的是无效评论,仅此而已。因为我得到了intval
所有整数输入,所以我不害怕任何类型的 SQL 注入。
底线:我是否真的关心无效评论,并首先发出额外的查询检查文章是否存在,这将占用更多资源,以确保不会插入无效的无害评论。