形成数据最佳实践
Form data best practices
好吧,我知道所有在一个数据清理策略的答案,不要这样做。我的问题是:是否应该采取任何标准的行动来确保表单数据的安全?除了做我自己的表单验证(即电子邮件,电话等)。
作为目前这是关系到一个WebApp (HTML, PHP和MYSQL),但我不会说这应该仅限于我想知道的最佳实践。从我所读到的,任何事情都应该做的唯一时间是当在一个数据清理步骤是与该数据采取特定的行动之前(即之前存储在我的数据库使用mysql_real_escape_string)。
编辑:除了SQL注入之外,还有哪些其他恶意攻击可能因不清理数据而发生?
首先,我假设您正在使用MySQLi (PDO也很好)和而不是已弃用的MySQL扩展名。如果没有,那么你绝对应该切换到这两个中的一个。
在将信息插入数据库之前,始终确保使用了准备好的语句和参数化查询 (参见这里:如何在PHP中防止SQL注入?)
对于在email, IP和其他类型的数据插入数据库之前进行验证,考虑使用filter_var() (参见这里: http://php.net/manual/en/function.filter-var.php)
从数据库中提取信息时,确保使用htmlspecialchars()和strip_tags()。
示例: htmlspecialchars(strip_tags($message_body))
Magic Quotes告诉我们,任何一种"马上"的卫生都是不好的做法。我们在运行时需要验证数据,因为不同的用法需要不同的验证。
对于验证目的,现在有许多可用的库,如GUMP和Zend Forms(更多的库可以在这里找到:最简单的PHP表单验证库?)。
注:你说的是mysql_real_escape_string。确保您使用PDO或mysqli而不是现在已弃用的原始MySQL API。更多信息请阅读:为什么我不应该't在PHP中使用mysql_*函数?
- 在页面上记录数据并实现pushstate()的最佳方式
- 操作数据的最佳实践
- 以角度渲染表中数据的最佳方式
- 存储数据的最佳方式是什么,以便与jquery一起使用
- 在d3.json中使用d3.csv组合多个csv文件数据输入的最佳方法是什么
- 将数据绘制到C3的最佳实践
- 在我的代码中管理大量硬编码数据的最佳方法
- Ext JS - 将面板绑定到数据存储的最佳方法
- 将数据从视图传输到javascript的最佳方式
- 本地存储web数据的最佳实践
- 在线/离线数据更新移动最佳实践
- angularjs设计模式和从服务器获取数据的最佳实践
- AngularJS中使用ajax获取数据的最佳方式是什么
- Spring MVC与Google图表,创建javascript数据表的最佳方式是什么
- 更新视图和控制器之间的角度重复数据值的最佳方式是什么
- 在定期更新的 Angular 中存储和使用数据的最佳方式
- 从 Angular.js 视图中修改方法中的数据的最佳做法
- JavaScript 中多项选择测验的最佳数据结构
- 简单的语法检查器程序-最佳数据结构
- 这是在多个设备上处理海量数据的最佳数据网格