PHP:通过Javascript发布分数的安全方式
PHP : Secure Way to post Score Via Javascript
i创建了一个php文件,该文件将更新数据库中的分数。例如:http://domain.com/heli/test.php?id=100001181378824&score=50000
Test.php包含以下代码
mysql_connect(localhost,$user,$password);
$id = mysql_real_escape_string($_GET['id']);
$score = mysql_real_escape_string$_GET['score']);
@mysql_select_db($database) or die( "Unable to select database");
$query = "UPDATE heli SET score = '$score' WHERE app = '$id'";
echo $query;
$result=mysql_query($query);
mysql_close();
我想知道如何通过Javascript安全地获取或发布请求到我的test.php。现在我已经创建了以下Js。
var httpwp = new XMLHttpRequest();
var urlwp = "http://domain.com/heli/test.php?id=100001181378824&score=50000";
var paramswp = "id="+ids+"&score="+scores+";
httpwp.open("GET", urlwp, true);
httpwp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
httpwp.setRequestHeader("Content-length", paramswp.length);
httpwp.setRequestHeader("Connection", "keep-alive");
httpwp.send(paramswp);
但是如何使用身份验证密钥等安全地发布或获取请求?
您永远无法确定客户端提交的数据。
为了让这更"安全",你必须在服务器上写一些关于分数计算的逻辑。
例如。假设你现在开始游戏,3秒后你提交1000分。这可能吗?
你必须创建一些步骤或限制,例如,如果玩家处于1级,分数不能超过100分,并且不能在1分钟的游戏前提交。等等
祝你好运。
1。首先,修复您的PHP代码,这样您就不会受到SQL注入的攻击。
2.接下来,通过https而不是http访问您的服务器。
3.添加一个php文件以接受对名称和密码的登录请求,该请求将返回一个唯一的会话密钥。(一个大的随机数就足够了,或者随机数据的sha1散列+请求中的一些数据)
4.将此号码与发布日期一起存储在服务器端数据库中。
6.在上传分数之前,让你的应用程序从该文件中获取会话密钥。
7.让你的分数保存php文件接受你的会话密钥和分数数据,并将其与数据库进行比较,看看它是否有效,是否太旧(检查发布日期)。
8.存储新的会话密钥,并将其与分数更新的结果一起返回,并从数据库中删除旧的会话密钥。
9.让你的js在以后的帖子中使用新的密钥,每次都从服务器上获得一个新的密钥。
10.在php应用程序中内置健全性检查,以检查荒谬和不可能的分数。还要检查是否得分过快。
- 使用javascript存储变量的最安全方式
- 将敏感信息传递给iframe的安全方式
- 以安全的方式设置nodeJS Transform流的编码
- 将参数传递到JavaScript的安全方式,无需服务器端脚本
- 使用Mongolab和Github的安全方式
- noscript谷歌快照,安全的方式
- 将javascript代码作为POST请求发送的安全方式是什么
- 检查身份验证的安全方式(NodeJS/Express)
- 在javascript算法中使用私有MD5密钥的安全方式
- 使用ajax以安全的方式传递ID值
- SEO使用联盟链接的安全方式
- 什么是更安全的方式来存储javascript
- 在TypeScript中以类型安全的方式用静态函数从外部库扩展一个类
- 安全的方式与页面's DOM从覆盖JS交互
- 以安全的方式将密码从Javascript传递到PHP
- 将OAuth令牌通信到javascript客户端的安全方式
- PHP:通过Javascript发布分数的安全方式
- 如何以安全的方式在dojo gfx形状上定义自定义属性
- 这是编写注册表单的安全方式
- 以安全的方式从客户端JavaScript与Amazon Kinesis一起工作