如何修复此代码的安全流程:
<a href="http://localhost/mypay/admin/company/#"
data-pk="26" data-url="http://localhost/mypay/admin/company/update/profile"
id="name"
name="name"
data-type="text"
data-source="">dfg</a>
这使用x-editable [bootstrap] - http://vitalets.github.io/x-editable/
如果客户端更改了数据的“PK”主键,我很好奇如何提高应用程序的安全性。身份证必须放在哪里或者我会创建哪些其他安全措施来阻止他们这样做?
我使用:Bootstrap和Codeigniter。
答案 0 :(得分:13)
如果允许当前用户编辑此条目,则必须在服务器端进行检查。不要试图保护客户端,这是不可能的。人们总是能够在他们的计算机上编辑数据,当你到达你控制的地方时,你有责任控制它。
答案 1 :(得分:0)
我们,PHP编码员,并不总是看到我们的代码中的弱点。我们对识别用户(pw,会话等)做了大惊小怪,我们清理代码以防止SQL注入所有类型。好 !但是,如果一个完全识别的用户,合法更新HIS OWN记录(比如他的ID 24),只需将他的更新表单发送回你的应用程序,所有空字段和ID = 23,然后ID = 22等等。 人们可以在几分钟内轻松消灭所有记录(通过一个小循环甚至更快:for(id = 1,id&lt; 10000等)
所以,非常好的问题INDEED!
这是我的解决方案(当然不是最好的解决方案):
当识别出的用户点击按钮编辑HIS记录时,我这样做:
任何来自 FOR FOROTAT ID 的数据都不会导致任何更新,因为目标记录没有相同的随机{UpdatableOnlyBy}字符串。
如果留下这两个字段,我会由你决定何时以及如何清理这两个字段 旧的MD5字符串和时间戳。就我而言,我在0h25有一个cronjob,可以清除昨天和之前的所有字段。但是在过去,我保留了这些数据,以查看有多少记录被更新,留下“孤儿”(编辑表格从未回来......)。在我的一个应用程序中,它不到6%。