0

これは、たとえば、ユーザーが<script>top.location.href=’http://www.google.nl’;</script> アプリケーションにプレーンテキストとしてエコーするように入力したときに発生する問題です。さて、これは実際に htmlspecialchars() で動作します

この例は私にとってはうまくいきます:

$test = "<script>top.location.href=’http://www.google.nl’;</script>";
echo htmlspecialchars($test);

しかし、ユーザーがフォームを送信すると、データは DB に送られ、「ダッシュボード」に戻ります。値は現在''です。データを安全に DB に保存する方法はありますか?

SDK を使用して、この方法で C# アプリケーションの DB に値を追加します。

$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;
}
4

2 に答える 2

0

はい、mysqli_real_escape_stringについて読んでください。

于 2013-09-16T08:21:51.470 に答える
0

mysql-real-escape-stringを確認していただけますか

mysql_real_escape_string() :

mysql_real_escape_string() 関数は、SQL ステートメントで使用する文字列内の特殊文字をエスケープします。

SQL Inject も確認してください: SQL インジェクション

<?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
于 2013-09-16T08:30:05.197 に答える