假设我从用户输入构建XML文档,并且不做任何事情来清理它。如果我使用ADO将该XML字符串作为参数传递给存储的proc,然后查询它并将值插入表中,我是否仍然受到保护,因为它是作为参数启动的?
答案 0 :(得分:1)
只要你通过替换'with'来逃避XML,你就会受到保护。
<doc>
<element attrib='value' />
</doc>
变为
'<doc>
<element attrib=''value'' />
</doc>'
修改强> 除非您使用ADO添加DbParameter。这会自动为您替换,并保护您免受SQL注入。