将XML作为参数传递可以保护我免受SQL注入吗?

时间:2014-02-26 22:15:45

标签: sql sql-server xml sql-injection

假设我从用户输入构建XML文档,并且不做任何事情来清理它。如果我使用ADO将该XML字符串作为参数传递给存储的proc,然后查询它并将值插入表中,我是否仍然受到保护,因为它是作为参数启动的?

1 个答案:

答案 0 :(得分:1)

只要你通过替换'with'来逃避XML,你就会受到保护。

<doc>
    <element attrib='value' />
</doc>

变为

'<doc>
    <element attrib=''value'' />
</doc>'

修改 除非您使用ADO添加DbParameter。这会自动为您替换,并保护您免受SQL注入。