0

几天前,当我设计一个HTML将数据提交phpSQL数据库的表单时,我开始考虑这个问题。我解决了我的问题,但我在这里问的是一个计算机理论问题,这可能会在未来帮助我(或其他人)。

我想保护自己免受SQL 注入的影响,我认为php与其在服务器端验证数据,不如让 javascript 在客户端验证数据(我在 JS 中比在 PHP 中更流利)然后发送。

但是,老练的用户可能会检查 javascript(或HTTPrequest),然后对其进行更改以向服务器发送他自己的恶意请求。

我的问题:

理论上是否可以在 clinet 端进行计算,代码对他可见,并以某种方式发送它以确保数据是从我的程序发送的,而不是从更改的代码发送的?

这可以通过带有公钥和私钥的 RSA 方案来完成吗?

4

1 回答 1

1

我想保护自己免受 SQL 注入,我认为不是验证数据

不要验证数据以保护自己免受 SQL 注入。验证数据以确保它是您想要的格式。

转义数据以保护自己免受 SQL 注入(并通过准备好的语句和参数化查询进行转义)。

理论上是否可以在 clinet 端进行计算,代码对他可见,并以某种方式发送它以确保数据是从我的程序发送的,而不是从更改的代码发送的?

不可以。客户端代码可以完全绕过。在这个领域,只有快速告诉用户他们的数据如果提交到服务器将被拒绝是有用的。

这可以通过带有公钥和私钥的 RSA 方案来完成吗?

不可以。您必须将其中一把钥匙交给客户。然后可以独立于您的代码提取和使用它。

于 2012-10-16T08:14:14.253 回答