我的网站上有文本框。此文本框使用表单和发布方法提供文本值。此表单在数据库中搜索特殊文本。如何确定来自 sql injectionin 或 xss 的安全输入数据。
问问题
2972 次
1 回答
6
由于 Symfony2 中 ORM 数据库风格的本质,您自然会受到 SQL 注入的保护。无论如何,与您的配置或验证器类设置的约束不匹配的数据将在到达数据库之前被拒绝。
数据在传递到请求类之前会自动编码。XSS 是不可能的,因为在接收端和输出端,数据都不是 RAW 格式,除非您指定它是,在这种情况下,无论如何您都会否定内置的安全性。
表单中的 XSS 是不可行的,因为 Symfony 默认情况下(使用表单类时)会在您的表单提交中创建 CSRF 令牌以验证请求的发送者。除非您特别禁用它们,否则它们将自动生成并包含在隐藏字段中。
symfony 的内置功能只是第一步,最佳实践是使用数据转换器来确保您的数据具有您期望的格式和类型。
数据转换器:http ://symfony.com/doc/current/cookbook/form/data_transformers.html
最后,关于 SQL 注入,使用内置的查询构建器或使用 DQL 语言(如果您使用学说)是另一层安全性,可在使用高度自定义的查询时防止注入。
于 2012-12-26T15:21:15.967 回答