我目前正在使用 3dCart 高级 API,它使用 SOAP 请求和 SQL 来查询数据库。
我担心安全问题。有哪些选项可以使远程查询安全?
这是一些示例代码:
class Data {
private $db;
public function __construct(){
$this->db = new soapclient('http://api.3dcart.com/cart_advanced.asmx?WSDL',array('trace'=>1,'soap_version'=>SOAP_1_1));
}
public function query($sql = "SELECT TOP 20 * FROM category"){
$param = array(
'storeUrl'=>"example.com",
'userKey'=>"supersecretcode",
'sqlStatement'=>$sql
);
$result = $this->db->runQuery($param);
$match = $result->runQueryResult->any;
$sxe = new SimpleXMLElement($match);
return $sxe->runQueryRecord;
}
}
我运行这样的查询:
$db = new Data()
$query = $db->query("SELECT id, category_name FROM category WHERE category_name LIKE '%".$search_term."%' AND isFilter = 0 AND hide = 0");
//WORK WITH QUERY DATA HERE
我如何确保这一点?由于我没有直接连接到 sql server 有什么办法可以防止 sql 注入?