在 Ajax 请求中发送安全参数的最佳方式是什么?

What is the best way to send secure parameter in Ajax Request?

我用这个函数发送了一个ajax请求:

function myFunc(x)
{
    $.ajax({
        url: retrive.php,
        type:     'POST',
        data:     'data=' + x,
        success:  callback
    });
}

我用整数调用函数parameter.for 例子:

myFunc(20);
myFunc(25);

黑客可以更改 myFunc() 的参数吗?
如果可以,如何防止更改值?
发送安全参数的最佳方式是什么?

** 编辑: **

我的 javascript 代码有一个名为 Score 的变量。
这个变量加一:

if(condition)
{
    Score++;
}

游戏结束后,我用Ajax发送变量。
并且这个带有游戏代码的变量存储在数据库中。

if(game_over)
{
    myFunc(20, Score); // game code, score
}

但用户可以更改此值。(通过 chrome 和 firebug 的控制台)
1. 解决方法是什么?
2. 这种攻击的名称是什么?是Xss吗?

是的,黑客当然可以,而且很容易。例如,通过使用 Chrome 开发者工具,可以注入或修改您的脚本。作为一个激励人心的例子,我在订购比萨饼时经常这样做,以便更快地送达 ;)

因此,您不应依赖 JavaScript 身份验证。相反,让您的服务器验证或拒绝参数,或者在服务器和 JavaScript.

之间使用某种 challenge/accept 系统

您可以尝试以下更多想法:Ajax post request security

Can a hacker change the parameters of myFunc() ?

是的,他可以。

If he can, How to prevent change value?

您无法阻止它,但您可以验证服务器端代码中的参数。

What is the best way to send secure parameter?

你可以做的是你可以使用 mcrypt_encrypt() function for encrypting your string or data and while receiving data you can use mcrypt-decrypt() 函数,否则你可以使用 PHP

的其他编码方式

你可以查看PHP mcrypt - Complete encryption and decryption of data

这与通过 POST 或 GET over HTML 形式发送参数相同。 它不可能保护它。 你只能使用一些加密方法,但它不是很安全,因为在服务器端你需要解密它。在这个解决方案的最后,不可能以 100% 安全的方式对其进行加密。