为了防止SQL注入攻击,开发者应利用参数化查询来处理用户输入,而不是直接拼接字符串。这种方式可以或许有效避免恶意用户通过输入操控查询逻辑。
比方,利用参数化方法而非直接拼接:
mdx WITH SET [SelectedProducts] AS Filter([Product].[Product].Members, [Product].[Product].CurrentMember.Name = @ProductName) SELECT { [Measures].[Sales] } ON COLUMNS FROM [SalesCube] WHERE ( [SelectedProducts] )
这里@ProductName是一个参数,它的值由用户输入,但不会直接拼接到查询字符串中。
3. 数据屏蔽与加密