在php中使用用户输入数据。什么';更好吗?
我试图找出管理用户输入的关于他可能插入的不需要的标签的数据的最佳方法:在php中使用用户输入数据。什么';更好吗?,php,user-input,Php,User Input,我试图找出管理用户输入的关于他可能插入的不需要的标签的数据的最佳方法: 剥离标签()-标签被移除,不会插入数据库中 标签插入到数据库中,但当读取该字段并将其显示给用户时,我们将使用htmlspecialchars() 有什么更好的,这些有什么缺点吗 这取决于您的优先级: 如果显示用户输入的特殊字符很重要(例如在StackOverflow上),那么您需要将此信息存储在数据库中,并在显示时对其进行清理-在这种情况下,您至少需要使用htmlspecialchars()来显示输出(如果不是更复杂的
- 剥离标签()-标签被移除,不会插入数据库中
- 标签插入到数据库中,但当读取该字段并将其显示给用户时,我们将使用htmlspecialchars()
这取决于您的优先级:
- 如果显示用户输入的特殊字符很重要(例如在StackOverflow上),那么您需要将此信息存储在数据库中,并在显示时对其进行清理-在这种情况下,您至少需要使用
来显示输出(如果不是更复杂的话)htmlspecialchars()
- 如果您只需要纯文本注释,请在将其粘贴到数据库之前使用
——这样可以减少需要存储的数据量,并减少在屏幕上显示数据时的处理时间strip_tags()
当然,你需要一种不同的逃避方式 — 或参数化 — 用于将文本放入SQL字符串。为保护用户输入而采取的措施完全取决于数据在什么上下文中使用。例如:
- 如果要将其插入SQL数据库,则应使用参数化语句。PHP的
也能正常工作mysql\u real\u escape\u string()
- 如果要在HTML页面上显示它,则需要去除或转义HTML标记
- 通常,当您将用户输入与另一种形式的标记或另一种语言混合时,在将该语言的元素放入该上下文之前,需要从输入中转义或剥离该语言的元素