我想根据一些输入生成一个SQL。我有一个预定义的SQL(在这里我做一些替换),它将使用这些输入来生成使用ODBC连接所需的SQLPHP在我的输出中放置奇怪的字符
我已经将预定义的SQL存储在JS文件中。
下面是相同的代码:
function get_Result($query_passed){
//echo "inPHP";
$conn=odbc_connect(connectiondetails) or die(odbc_errormsg());
$resultset = odbc_exec($conn, $query_passed);
$rowValues = [];
while(odbc_fetch_array($resultset)){
$rowValue = odbc_result($resultset,1);
array_push($rowValues,$rowValue);
}
echo $rowValues[1].$rowValues[2]; // for debugging purpose
odbc_close($conn); // closing the connection
}
假设输入列1,栏3 它必须生成所需的SQL是:
Select column1,sum(l1+week*column3)+ ........sum(l175+week*column3) from tempTable
我的JS代码如下如:
$.ajax({
url: "logic/GetResultSet.php",
type: "post",
data:"query_To_Fire="+finQuery+"&action=get_Result",
success: function(data){
$("#finaleQuery").append("<b>Generated Query:</b>"+data);}
while调试我得到的输出为JS
select column1,sum(l1+week*column3)+...+sum(l76+week*column3)+LCLT_F3)1)����ȏ���ȏ 11 and so on
怪异的人物还包括一些文字后其具有各种细节,如我的Ajax调用的参数,我的密码等。
不会有一个问题,如果我的输入是列1,列2是COS,就不会有上COLUMN2
这已被窃听我长期以来的任何总和。任何想法这种行为。
注意:我正在使用sublime文本,所以没有选择调试实际的PHP代码。
你是意识到可以由用户和t修改JS代码通过发送任何修改后的查询,您会给用户在服务器上使用SQL注入的可能性吗?您应该生成一个逻辑筛选器并转义/验证用户输入,请仅生成服务器端查询。 – Steini 2014-10-30 11:25:35
谢谢@Steini,我没有完全意识到SQL注入。仍然我指定的JS代码仅用于测试目的。我将在服务器端构建查询。 但现在我更关心输出中的不需要的字符和一些丢失的输出! – thinkinbee 2014-10-30 11:32:47