【问题标题】:is serialized form string secure序列化表单字符串是否安全
【发布时间】:2011-10-01 06:16:54
【问题描述】:

我在我的迷你网站中使用了很多 ajax 请求。每当我想提供一些输入,例如用户输入的文本以及一些重要的 id 时,我将它们放在一个表单中并使用 '.serialize' 将其作为字符串并通过 '.getJSON' 或 '.post' 发送。在接收 php 文件中,'parse_str' 用于使它们成为单独的变量。 这整个过程安全吗?我没有其他更好的主意。所以请回复一下这个

【问题讨论】:

  • 我将 htmlspecialchars 用于用户输入的文本,然后将它们作为隐藏变量的值包含在表单中。你有更好的主意吗?
  • 您所说的“安全”是什么意思?以什么方式安全?
  • 从某种意义上说是安全的,我想知道我是否创造了更多的可能性,而不是让一些黑客破坏我的网站甚至造成任何重大损失

标签: php ajax forms serialization


【解决方案1】:

不,这不安全。

例如,密码表单的序列化字符串可以采用“username=hello&password=world”格式,即序列化的表单字符串仍然是纯文本,可以在数据包中被嗅探。..

确保获得 SSL 证书并使用 HTTPS 进行任何用户身份验证。

【讨论】:

  • 好的,所以除了登录页面,这是否适用于其他携带用户输入状态消息和附加信息的一般 ajax 请求?
  • 除了以隐藏形式发送之外,您还有其他传输用户键入的状态消息和额外信息的想法吗?
【解决方案2】:

用户提交内容的安全性问题在于,它可能包含如果未正确转义,可能会导致问题的代码。如果您将信息提交到 MySQL 服务器,您应该使用mysql_real_escape_string

http://php.net/manual/en/function.mysql-real-escape-string.php

【讨论】:

  • 我将 htmlspecialchars 用于用户输入的文本,然后将它们作为隐藏变量的值包含在表单中。你有更好的主意吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
  • 2010-09-24
  • 1970-01-01
  • 2017-04-03
  • 2010-11-14
相关资源
最近更新 更多