我正在看看如何正确地转义来自外部世界的数据,然后才能将其用于应用程序控制,存储,逻辑......这种事情。转义用户数据,没有魔术引号
很明显,在PHP 5.3.0+版本中很快弃用了magic quotes指令,并且在php6中删除了这个指令,对于那些希望升级并进入新语言特性的用户,同时维护旧版代码(don我们喜欢它..)。
但是,我没有看到的一件事是关于理论/最佳实践的讨论,一旦您保护了数据后应如何处理 - 例如,是否使用斜线存储?我个人认为保持逃脱在DB数据并不是一个好的做法,但希望听到的讨论,最好读一些案例研究..
从PHP手册中的某些链接仅供参考:
PHP Manual - mysql_real_escape_string
等等等等
任何提示吗?
你说的“例如,存储有或没有斜线”的事实使我相信你可能有一个错误的正确转义的概念。如果你正确地进行转义,那么发送到需要斜线的数据库的字符串将会拥有它们,但实际上并不存储在数据库中。如果您在数据库中看到斜线,则数据不正确地逃脱。 – longneck 2009-11-27 16:42:57
请解释更多longneck - mysql会在插入前删除转义符吗?有关于此的网页吗?但是你是对的 - 我想我在过去的某个时候忽略了这一点,现在试图赶上。 – dmp 2009-11-27 16:49:54
mysql_real_escape_string不会转义斜杠等。它使SQL查询的字符串安全。 – William 2009-11-27 16:51:14