Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在jQuery ajax请求中保护和/或加密(隐藏)POST变量_Php_Javascript_Jquery_Security - Fatal编程技术网

Php 在jQuery ajax请求中保护和/或加密(隐藏)POST变量

Php 在jQuery ajax请求中保护和/或加密(隐藏)POST变量,php,javascript,jquery,security,Php,Javascript,Jquery,Security,我正在开发一个web应用程序,上面有一个邀请表单。此邀请表单要求用户选择电子邮件帐户,然后输入用户名和密码。这些细节通过使用jQuery的ajax请求作为POST变量发送。问题是,我可以使用mozilla插件FireBug以纯文本形式查看输入的密码(以及其他POST变量) 我认为能够以明文形式(在Firebug中)查看密码并不理想。有什么我可以阻止的吗?我尝试从通过HTTPS提供服务的页面进行ajax调用,并通过HTTPS发出请求,但我仍然可以在Firebug中以纯文本形式看到所有POST变量

我正在开发一个web应用程序,上面有一个邀请表单。此邀请表单要求用户选择电子邮件帐户,然后输入用户名和密码。这些细节通过使用jQuery的ajax请求作为POST变量发送。问题是,我可以使用mozilla插件FireBug以纯文本形式查看输入的密码(以及其他POST变量)

我认为能够以明文形式(在Firebug中)查看密码并不理想。有什么我可以阻止的吗?我尝试从通过HTTPS提供服务的页面进行ajax调用,并通过HTTPS发出请求,但我仍然可以在Firebug中以纯文本形式看到所有POST变量


是否有某种方法可以在客户端加密这些变量,然后在服务器端解密它们?或者有其他解决方案吗?

如果您使用的是HTTPS,则无需担心(只要HTTPS设置正确,但这与此问题无关)

您可以在Firebug中看到这些值,因为Firebug可以看到浏览器发送的标题,但是除了浏览器之外,没有人可以读取这些数据


实际上,您不能对Firebug隐藏该值,因为浏览器必须知道要发送什么,并且Firebug可以访问浏览器能够访问的所有内容

您将始终能够在Firebug中看到所有变量。这只意味着,如果使用Firebug,任何人都只能看到自己的密码,因此这不是一个漏洞


不要重新发明TLS/SSL。只要使用HTTPS,它就可以做到这一点:在客户端加密这些变量,然后在服务器端解密。

您在客户端使用Firebug进行测试,如果您使用HTTPS发送post数据,那么在发送到服务器时,这些数据将以加密形式发送,因此您不必担心中间人的可能性如果您使用HTTPS,则嗅探攻击以明文形式检索密码


您可以在firebug中看到密码字段,因为它位于客户端浏览器上,并且作为开发人员,您可以看到所有数据。

可能会有帮助:

这个库允许使用ajaxget/post对数据进行加密和发送,因为变量是加密的,所以很难猜测数据

库使用openssl的公钥/私钥概念


我希望这将对某人有所帮助

您的变量被加密为一个工具或软件,其行为就像中间人一样。您的浏览器或浏览器插件(如firebug或google chromes网络请求和响应监控面板)的行为不像中间人。相反,它们是有效的客户机,拥有解密服务器响应或在发送到服务器之前加密数据的密钥

如果您希望测试数据是否加密,可以使用fiddler或charles等工具作为web调试代理。通过这些工具,您可以轻松查看发送到https服务器的数据,并对服务器的响应进行加密。

我更喜欢使用:

您可以在使用公钥发送Ajax之前加密所有输入字段并发布数据。 然后用私钥在服务器端解密

注意:为了提高安全性,最好对哈希内容进行签名(使用jsencrypt)(使用ex:)以实现更好的安全性


希望对您有所帮助,

通过HTTPS提供的页面通常会在客户端和服务器之间产生一种相当节省的通信形式。事实上,您可以看到明文密码是正常的。您看到您通过Firebug在表单中输入的密码并不意味着其他人可以使用相同的工具看到其他人的密码。Firebug仍然会向您显示请求及其内容,即使请求是通过HTTPS发送的。这是因为它插入浏览器,而不是通过网络。如果您对连接进行tcpdump,您应该看到发布的数据已经加密,以防止其他方查看它。