2017-04-01 71 views
-3

我正在向测试数据库发送测验问题。我想验证测验问题,使用Javascript验证答案(包括文本和图片),并通过AJAX将变量发送到PHP以将它们发送到数据库。它安全吗?正在向AJAX安全的数据库发送数据吗?

详细信息:我正在创建管理面板。在管理面板管理员可以添加问题,问题的答案(答案可以是正常的文字和图片)到网站。我想通过AJAX将这些问题发送给PHP。我必须在JS变量中存储表单成员的值。我的问题是:无法访问管理面板的人可以编辑存储在这些变量中的数据,将它们发送给php,然后将数据发送到数据库?

+0

为什么它会是不安全的? – Dai

+1

如果您在服务器端不存储验证值,那么这是不安全的,因为这可以由用户操纵 –

+0

编号根本不。 –

回答

1

'安全'是相对的。基本上AJAX不过是一个基于JavaScript的普通HTTP请求。所以它不是比那样更安全。为了使其“安全”,您可以使用HTTPS来加密连接。这样,你应该能够防止注射和东西。关于作弊......如果真的想要,他可以。你可以做的唯一事情就是仔细检查参数,从而检测不规则性。也许添加一个隐藏的校验和,它只允许特定的选项。

当然这并不安全;你的代码在客户端的机器上运行,所以客户端可以完全控制它。你不能保留任何秘密 - 你可以混淆你心中的内容,但在一天结束的时候,我仍然可以看到,一时兴起拦截并修改你的HTTP请求。

控制事情的唯一方法是让客户端根据其对游戏状态的了解来报告服务器验证的操作;然后服务器向客户端发送这些操作的结果,以便友好的客户端可以将其游戏状态的概念与服务器的状态保持一致。

如果您不准备这样做,请不要打扰。如果你依赖的客户在一定程度上不是敌对的,只需要一个人有时间杀了你就会被遗忘

+1

HTTPS连接可以保护您免受嗅探器的攻击,但它不会阻止客户端的数据操作。 –

+1

HTTPS不会阻止任何类型的注入攻击。它阻止了请求的内容被中间人看到。 – ADyson

+0

是的,这就是为什么'安全'!但是有一些方法可以防止操纵:像;你可以发送一个散列给客户端。当调用ajax时 - 也发送哈希值。然后在服务器上,你可以再次消化并检查。 –