当前位置:  开发笔记 > 编程语言 > 正文

filter_var是一个很好的方法吗?

如何解决《filter_var是一个很好的方法吗?》经验,为你挑选了2个好方法。

filter_var什么好用于过滤数据?它会过滤哪种不良数据?我确实使用,mysql_real_escape_string但我想知道添加filter_var是否有帮助?



1> Ionuț G. Sta..:

为了防止SQL注入,尽可能使用预处理语句.如果不是,请将mysql_real_escape_string用于字符串,将(int)cast或intval()用于整数,(float)或floatval()用于浮点数,并使用addcslashes($ input,'%_')用于LIKE语句中使用的字符串.当尝试转义要在RLIKE语句中使用的字符串时,事情变得更加复杂.

对于过滤HTML内容,最好的是strip_tags(不传递$ allowable_tags),但是......你可能不喜欢/想要它,在这种情况下最经济实惠的解决方案是:

$escaped = htmlspecialchars($input, ENT_QUOTES, $your_charset);

更可靠的解决方案是使用像HTML Purifier这样的库

过滤器功能没问题,但其中一些比过滤器更有效.根据您的需要,您可能会发现其中一些有用.


htmlspecialchars()是将文本输出到HTML的正确方法.如果您想在文本中使用合法的"<"字符,strip_tags()会丢失内容,并且不会正确显示"&".

2> Ross..:

您可以filter_var使用FILTER_*常量进行调整.听起来你正在寻找数据的卫生处理(实际调整数据以使其安全*)而不是验证(检查数据是安全的).

不同的过滤器可以帮助完成不同的任 虽然mysql_real_escape_string可以清理数据以防止SQL注入,但输出可能包含HTML的数据并不好.这是我用于日常任务的几个过滤器:

FILTER_SANITIZE_SPECIAL_CHARS - 用于显示(不删除)HTML代码,防止XSS攻击并将符号转换为HTML实体.

FILTER_SANITIZE_STRING带有STRIP_LOW/HIGH标志 - 实际上删除了HTML(请参阅参考资料strip_tags).

FILTER_SANITIZE_URL - 使URL安全*.

FILTER_SANITIZE_EMAIL - 使电子邮件地址安全,虽然我更喜欢在存储地址之前使用它的验证表.

*我松散地使用安全,我认为你永远不会太确定.

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有