Jam*_* P. 1 php mysql security sql-injection
当从获取/发布信息并将信息保存到数据库时,今天的最佳实践是什么?数据是否仍然像过去那样被转义,或者是否有其他做法?此外,HTMLPurifier在哪里可以适应?我目前正在使用它来过滤富文本.
永远不要将数据从GET保存到数据库.
永远不会从GET中保存数据,即使您正在进行充分的验证和转义.GET不应该更改服务器上的信息.
在更改服务器(DB或服务器文件)上的任何内容之前,请检查请求是POST还是PUT或DELETE(如果适用)
POST应该改变服务器的状态.因此,在更新表或更改服务器上的任何文件之前,请检查请求方法是否发布.
在处理之前验证输入
如果您期望整数验证输入确实是整数.
在db查询中使用或添加到输出之前转义输入
出于查询目的,转义输入,如果您使用输入直接打印到输出,则剥去斜线并清理它.
当您拥有用户会话权限时,请使用易腐性令牌进行POST
如果您有用户登录并使用访问令牌,则每次访问或5分钟左右更新令牌.
没有用户会话时使用访问令牌
正如Ankur建议在没有登录会话时使用访问令牌.但这不可靠.