我有一个页面通过Ajax构建以下表单。
<form action="go.asp" method="get">
<!--row-->
<input type='hidden' name='BundleItemID' id='BundleItemID' value='123'/>
<input type='hidden' name='BundleColorID' id='BundleColorID' value='4'/>
<input type='hidden' name='BundleSizeID' id='BundleSizeID' value='Large'/>
<input type='hidden' name='BundleQtyID' id='BundleQtyID' value='4'/>
<!--#row-->
</form>
表单在行之间建立并循环,因此数据将如下所示:
<form action="go.asp" method="get">
<!--row-->
<input type='hidden' name='BundleItemID' id='BundleItemID' value='123'/>
<input type='hidden' name='BundleColorID' id='BundleColorID' value='4'/>
<input type='hidden' name='BundleSizeID' id='BundleSizeID' value='Large'/>
<input type='hidden' name='BundleQtyID' id='BundleQtyID' value='4'/>
<!--#row-->
<!--row-->
<input type='hidden' name='BundleItemID' id='BundleItemID' value='123'/>
<input type='hidden' name='BundleColorID' id='BundleColorID' value='4'/>
<input type='hidden' name='BundleSizeID' id='BundleSizeID' value='Large'/>
<input type='hidden' name='BundleQtyID' id='BundleQtyID' value='4'/>
<!--#row-->
<!--row-->
<input type='hidden' name='BundleItemID' id='BundleItemID' value='123'/>
<input type='hidden' name='BundleColorID' id='BundleColorID' value='4'/>
<input type='hidden' name='BundleSizeID' id='BundleSizeID' value='Large'/>
<input type='hidden' name='BundleQtyID' id='BundleQtyID' value='4'/>
<!--#row-->
<!--row-->
<input type='hidden' name='BundleItemID' id='BundleItemID' value='123'/>
<input type='hidden' name='BundleColorID' id='BundleColorID' value='4'/>
<input type='hidden' name='BundleSizeID' id='BundleSizeID' value='Large'/>
<input type='hidden' name='BundleQtyID' id='BundleQtyID' value='4'/>
<!--#row-->
</form>
我想向go.asp提交一个表单 - 这个页面将遍历行之间的所有内容并将数据提交到mySQL,我的代码到目前为止:
<%
dim LoopData
for i=1 to Request.QueryString("BundleItemID").Count
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * FROM tblProducts"
rs.Open sql, conn.c
While Not rs.EOF
LoopData = LoopData & Request.QueryString("BundleItemID")(i) & ""
sql= "INSERT INTO tblProducts (BundleItemID,BundleColorID,BundleSizeID,BundleQtyID) VALUES ("&request("BundleItemID")&","&request("BundleColorID")&","&request("BundleSizeID")&","&request("BundleQtyID")&")"
rs.MoveNext()
Wend
next
%>
我该怎么办呢?
答案 0 :(得分:1)
我已经通过“简单方法”解决了这个问题:
我所做的是创建一个对象数组(以JSON形式)发送到服务器(通过帖子)。
数组看起来像这样:
var arr = [{"ItemID":123,"ColorID":4, "SizeID":"Large", "QtyID"4"},
{"ItemID":123,"ColorID":4, "SizeID":"Large", "QtyID"4"},
{"ItemID":123,"ColorID":4, "SizeID":"Large", "QtyID"4"},
{"ItemID":123,"ColorID":4, "SizeID":"Large", "QtyID"4"}]
之后,转到接收此数据的页面并分析为请求生成的名称,您将找到一个数字序列var名称。
你只需要在for语句中调用正确的名称,如下所示:
for i =0 to 4
Dim strName = "arr[" & i & "]ItemID"
Dim strValue = request(strName)
next
你可以发送一个带有数组长度的变量来帮助你进行攻击