首页 » PHP和MySQL Web开发(原书第4版) » PHP和MySQL Web开发(原书第4版)全文在线阅读

《PHP和MySQL Web开发(原书第4版)》18.3 屏蔽用户的输入

关灯直达底部

建立一个安全应用网站的原则之一是绝不可相信用户的任何输入,将用户数据输入到文件或者数据库之前,要一直屏蔽此数据或者通过系统执行的命令传输它。

我们已经在本书的几处地方讨论用于屏蔽用户输入的技术,在此,我们简要地列出这些技术,以作参考。

■必须使用函数addslashes在用户数据进入数据库之前过滤该数据。这个函数过滤掉可能引起数据库问题的字符。可以使用函数stripslashes将数据返回到它的原始形式。

■可以在php.ini配置文件中开启magic_quotes_gpc和magic_quotes_runtime的指令。这些指令将自动地添加和过滤斜杠。magic_quotes_gpc指令用于格式化GET、POST和cookie变量,而magic_quote_runtime指令用于格式化进出数据库的数据。

■当传递用户数据给system或者exec时,必须使用函数escapeshellcmd。该函数可以避免任何怀有恶意的用户输入强迫系统运行某些特定命令的字符。

■可以使用函数strip_tags从一个字符串中去掉HTML和PHP标记。这样可以避免用户将恶意的脚本植入到用户的数据中(可能会将这些数据显示到浏览器上)。

■可以使用函数htmlspecialchars,该函数将字符转换成它们的HTML等价实体。例如,“<”被将转换成"<",该函数可以将任何脚本标记转换成无害的字符。