在Web应用程序代码中对全部的数据进行转义处理.“转义(escaping)”的意思a是将来自不可信通如由Web站点某个访问者添加的回帖)的文本和其他数据进行修改,使得这些数据在应用程序中进行进一步处理或显示时,不会造成非预期的影响。
输入数据校验和转义是个常见的安全问题,但是大部分Web开发人员只在SQL内容中进行这项工作.大部分有经验的Wcb开发人员知道,在将数据发送到SQL数据库之前,必须对数据进行转义或清理。否则,精心构造的输入可能造成可怕的查询,从而幕露荆或摧毁数据。尽管如此,很多编程人员仍然忘记转义SQL输入,更多的人忘记转义HTML输入。
即使这个术语本身也显得不够重视。使用PHP函数mysglreal-escape一string(]来“转义”SQL,而使用PHP函数btmispecWcharsfl或httrrdenrifies0来“转换特殊字符“。另外·关于为什么要转义SQL方面,还有大量的讨论。山WsglrealescapestriugO文档说“在将查询发送给MYSQL之前.必须记得(只有很少例外)使用这个函数以使得数据安全。”
但是没有关于HTML转义函数的文档说出类似的话:“必须对用户生成的HTML进行转义,否则瀚明的人可以使用精心构造的参数来告诉世界你的看法,并将链接指向可怕的地方。”很明显,你的站点可能被用于支持其他的可疑站点或者发送链接到目的地。但是无论哪种情况,你都应该不会希望在不知情的情况下发生上面这种事情。下面就是在正确转义过程前后的代码示例。