【PHP】使用htmlspecialchars()的方法
背景
在创建会员注册页面时发现了以下内容,作为备忘录记录下来。
操作系统:Monterey
编程语言:PHP 8.1.1
关于转义处理
htmlspecialchars()是一个执行转义处理的函数,但首先我想弄清楚什么是转义处理,所以进行了一番研究。
在标记语言HTML中,不仅仅限于HTML,编程语言中都有一些对于该语言具有特殊意义的符号,将其称为转义序列(转义字符,特殊字符)。例如,在HTML中,<和>就是这样的符号。
当输入文章时,如果想使用<或>,通常这些字符会被认为是HTML所必需的符号,因此无法正确显示。
为了将 < 和 > 转换为字符,输入表单等提供了处理,这个过程被称为转义处理。
htmlspecialchars()函数的用法
htmlspecialchars(変換したい文字列, フラグ(変換するルールみたいなもの), エンコード, 既存のhtmlエンティティをエンコードするか否か(無くてもいい))
htmlspecialchars($memo, ENT_QUOTES, "UTF-8")
第一参数:要进行转义处理的字符串
第二参数:默认情况下,参考官方文档使用 ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401
第三参数:指定编码,如UTF-8
第四参数:防止在同一段代码中对htmlspecialchars()进行两次转换等情况下,对转换后的字符再次进行转换(很抱歉,我对使用方法不太了解)
返回值为转换后的字符串。
顺便说一句,该方法是一个重要的方法,用于防止跨站脚本攻击漏洞。
请使用以下指引来获取信息。
1. PHP official documentation for the “htmlspecialchars” function
https://www.php.net/manual/ja/function.htmlspecialchars.php
2. About escape processing
https://www.f5.com/ja_jp/services/resources/glossary/escape-processing
3. About the fourth argument
4. “Systematic Learning: How to Build Secure Web Applications” P120~137
https://wasbook.org/