这是我遇到的问题,例如,当用户输入<script>top.location.href=’http://www.google.nl’;</script>
时
我希望我的应用程序将其作为纯文本回显。现在,这实际上适用
用htmlspecialchars()
此示例适用于我:
$test = "<script>top.location.href=’http://www.google.nl’;</script>";
echo htmlspecialchars($test);
但是,当用户提交表单时,数据会转到我的数据库,然后返回到仪表板&#39;。
该值现在为''
。
有没有办法将数据安全保存到我的数据库中?
我通过SDK以这种方式将值添加到我的C#应用程序的数据库中:
$onderwerp = htmlspecialchars(stripslashes(trim($_POST['onderwerp'])), ENT_QUOTES,'UTF-8',true);
$omschrijving = htmlspecialchars(stripslashes(trim($_POST['omschrijving'])), ENT_QUOTES,'UTF-8',true);
$im = array('description' => mysql_real_escape_string($onderwerp),
'message' => mysql_real_escape_string($omschrijving) ,
'relation' => $_SESSION['username'],
'messageType' => 70,
'documentName' => $_FILES["file"]["name"],
'documentData' => base64_encode(file_get_contents($_FILES["file"]["tmp_name"])));
$imresponse = $wcfclient->CreateInboundMessage($im);
echo $imresponse->CreateInboundMessageResult;
然后以这种方式在我的仪表板上调用它们:
$roc = array('relation' => $_SESSION['username']);
$rocresponse = $wcfclient->ReadOpenCalls($roc);
foreach ($rocresponse->ReadOpenCallsResult as $key => $calls){
echo $calls->Description;
}
答案 0 :(得分:0)
是的,请阅读mysqli_real_escape_string。
答案 1 :(得分:0)
mysql_real_escape_string():
mysql_real_escape_string()函数转义字符串中的特殊字符,以便在SQL语句中使用
同时CHeck SQL Inject :SQL Injection
实施例
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$item = "Zak's and Derick's Laptop";
$escaped_item = mysql_real_escape_string($item);
printf ("Escaped string: %s\n", $escaped_item);
?>
输出:
Escaped string: Zak\'s and Derick\'s Laptop