Translate Into English Coffee & Tea
ASP.NET 中的 AJAX ASP.NET 画图全接触 ASP.NET 与 XML 声明式数据绑定 ASP.NET 网页抓取
C# 基础 C# 类教程 C# 加密 ASP.NET 成员资格 非“自动化”处理 Excel
QuickAjax Ajax 完美的语法高亮器 Silverlight Popfly
通栏广告
危险的多选删除

网页上常常有一种功能,就是选中多篇文章,然后点击删除,就删除了选中的文档。

假设文章前的多选框名称是 C1,我们用以下方法来执行删除:
sql = "delete from where ID in (" & request.Form("C1") & ")"

其实这种方法是不安全的,假如客户端改变了 C1 的值,改成如下值:
1);delete from 用户表;--

进入 sql 后就变成了:
delete from where ID in (1);delete from 用户表;--)

分号用于分隔多个 SQL 语句,两横框表示注释,于是上述语句就执行了两个 SQL 语句,其中第二个语句删除了用户表的记录。

我们应该在 C1 进入 SQL 之前进行判断
dim c
c = request.Form("C1")
if IsNumeric(c) then
    sql = "delete from where ID in (" & c & ")"
end if

IsNumeric 认为  1, 2, 3 这种格式是数字格式,请参见:让我意外的IsNumeric()函数

相关文章
文章评论
标题:必填
内容:
文章信息