2016-04-20 11 views
-2

私は、ajax変数を受け取り、データベースに送る前にmd5を適用したいと思うコードを持っています。スクリプトで受け取った変数をmd5で暗号化する方法データベースを送信しますか?それは、AJAXによって受信 変数は$ポイントajax変数にmd5を適用する方法

<?php 
header('Access-Control-Allow-Origin: *'); 
error_reporting(E_ALL); 
ini_set('display_errors',1); 
session_start(); 
include_once 'dbconnect.php'; 

if(!isset($_SESSION['user'])) 
{ 
    header("Location: index.php"); 
} 

if(isset($_GET['points'])){ 

    //Lightly sanitize the GET's to prevent SQL injections and possible XSS attacks 

    $points = strip_tags(mysql_real_escape_string($_GET['points'])); 
    //$sql = mysql_query("INSERT INTO `publiadd_loginsx`.`users` (`points`) VALUES ('points');"); 
    $sql = mysql_query("UPDATE `users` SET user_points = user_points +'$points' WHERE user_id = " . $_SESSION['user']); 

    if($sql){ 
      //The query returned true - now do whatever you like here. 
      echo 'Your Points was saved. Congrats!'; 
    }else{ 
      //The query returned false - you might want to put some sort of error reporting here. Even logging the error to a text file is fine. 
      echo 'There was a problem saving your points. Please try again later.'; 
    } 
}else{ 
    echo 'Your points wasnt passed in the request. Make sure you add ?name=NAME_HERE&score=1337 to the tags.'; 
} 

// close MySQL connection 
mysql_close(); 
?> 
<html> 
<head> 
</head> 
<body> 
<body bgcolor="#ffffff"> 
</body> 
</html> 
+1

あなたは、ポイントをハッシュすると、それがMD5と同じように、あなたは決して解きほぐすことができないことに気付きます。また、 'SET user_points = user_points + '$ points''は決して再び働かないでしょう。 – RiggsFolly

+1

達成しようとしていることについてちょっとした文脈を教えてください。 MD5を使って何を達成しようとしていますか? MD5は暗号化に使用されず、ハッシングに使用されます。ユーザーがポイントを渡す価値を変更してポイントを更新できないようにするには、クライアント側ではなくサービス側で完全に異なる方法を検討する必要があります。 – Tom

+0

ええ私は何を検索するのが難しいのですか?ajaxの呼び出し変数にポイントを渡すようにユーザーを更新することです –

答えて

1

*は廃止され、代わりにmysql_安全でない使用のpdoです。

MD5ハッシュalogithmあり、それを行うと、サーバーに送信するユーザー/ブラウザcaus何かを確保しません検証のみ

暗号化のための暗号化/復号化するために使用することはできません。暗号化のために使用される鍵は既知である。

スコア/ポイントはユーザーサイドで計算されるのはなぜですか?仕事の結果などを送信し、回答が正しい場合は何かを計算してください。 すべてのbrowserside(ajax)がユーザーによって再現可能です。

1

あなたの文脈はうまく説明できませんが、少しセキュリティが必要な場合は<form action="" enctype="application/x-www-form-urlencoded" method="post"></form>の代わりにPOSTコールを使用してユーザーのポイントを更新できます。

他の開発者は、MD5は復号化できないと言います。この方法を続行する場合は、値Xmd5(X)をサーバーに送信し、両方のMD5値が等しいかどうかPHPで確認します。

関連する問題