【发布时间】:2010-12-16 21:47:09
【问题描述】:
我正在使用 jQuery 序列化表单,然后通过 ajax 将其发布到后端以保存到 MySQL。
我遇到了一个问题,对于包含引号 " 和 ' 的文本字段,jQuery 的 .serialize() 添加了一个转义斜杠,该斜杠会被 POST。
例如: '显示器尺寸:22" '正在保存为'显示器尺寸:22\" '。这些斜线也会随着字段的进一步编辑和重新保存而累积,因此最终可能看起来像“显示器大小:22\\\\\\”'。
在 PHP 中处理 $_POST 时,我可以删除所有反斜杠,但这也会删除用户可能合法输入的任何反斜杠。
还有其他方法可以避免这种情况吗?
非常感谢的想法!
【问题讨论】:
-
除了修复您的 PHP 设置以不首先添加它们吗?
-
哎呀。所以 this 就是这么多网站通过复制斜杠/转义符同时被破坏,并且 also 仍然容易受到各种 SQL 注入 hijink 的攻击......我只是希望你知道为什么要添加这些斜线,并知道在将结果字符串删除后如何处理它们,然后再将它们提供给您的 SQL
-
jQuery 不这样做 --
>>> $("<form><input name='test' value='&quot;test&quot;' /></form>").serialize();-- 结果:"test=%22test%22" -
数据库管理由 Zend 框架处理,据我所知,数据库输入是自动清理的。我希望如此?
-
E. - 是 - ZF 将使用正确的转义方法进行数据库清理