由于 App Engine 实际上并不使用 SQL,这是否意味着 App Engine 应用可以免受 SQL 注入(inject)攻击?
最佳答案
是的,它们都同样容易受到注入(inject)攻击,前提是您按照将用户输入与 GQL 字符串连接起来的方式进行操作。
但是,如果您遵循 Google 在 GQL 字符串中输入值时使用参数的最佳实践建议,那么您应该可以使用 GQL。所以不是:
query = GqlQuery("SELECT * FROM Song WHERE composer = 'Lennon, John'")
你可以使用:
query = GqlQuery("SELECT * FROM Song WHERE composer = :1", "Lennon, John")
或:
query = GqlQuery("SELECT * FROM Song WHERE composer = :composer", composer="Lennon, John")
此外,您可以通过使用 Query class 来完全避免这个问题。生成查询。
关于sql - Google App Engine 应用程序是否容易受到 SQL 注入(inject)攻击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6221361/