PHP常用的安全函数作用
PHP常用的安全函数作用
在PHP开发中,安全是非常重要的一个方面。以下是一些常用的PHP安全函数及其作用:
这些函数和方法有助于提升PHP应用的安全性,但安全是一个综合性的问题,需要综合使用多种手段,如输入验证、输出编码、会话管理、错误处理等。
1. htmlspecialchars()
-
作用:将预定义的字符转换为HTML实体。主要用于防止跨站脚本攻击(XSS)。
-
用法:
htmlspecialchars($string, ENT_QUOTES | ENT_HTML401, 'UTF-8')
2. htmlentities()
-
作用:将所有适用的字符转换为HTML实体。类似于htmlspecialchars(),但转换更多字符。
-
用法:
htmlentities($string, ENT_QUOTES | ENT_HTML401, 'UTF-8')
3. filter_var()
-
作用:通过指定的过滤器过滤变量。可以用来验证和清理用户输入数据。
-
用法:
filter_var($variable, FILTER_VALIDATE_EMAIL)(示例:验证电子邮件地址)
4. addslashes()
-
作用:在预定义的字符前添加反斜杠。主要用于转义SQL语句中的特殊字符,防止SQL注入。不过更推荐使用预处理语句(prepared statements)。
-
用法:
addslashes($string)
5. mysqli_real_escape_string()
-
作用:转义SQL语句中的特殊字符。用于在构建SQL查询时防止SQL注入。
-
用法:
mysqli_real_escape_string($connection, $string)
6. PDO(预处理语句)
作用:
通过绑定参数来执行SQL语句,防止SQL注入。推荐使用PDO而不是直接使用mysqli。
用法:
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username");
$stmt->bindParam(':username', $username, PDO::PARAM_STR);
$stmt->execute();
7. hash()
-
作用:生成字符串的哈希值。用于密码存储,通常结合password_hash()和password_verify()使用。
-
用法:
hash('sha256', $string)(虽然不推荐直接使用hash()存储密码)
8. password_hash() 和 password_verify()
作用:
生成安全的密码哈希值和验证密码。
用法:
$hash = password_hash($password, PASSWORD_BCRYPT);
if (password_verify($password, $hash)) {
// 密码正确
}
9. strip_tags()
-
作用:从字符串中去除HTML和PHP标签。用于清理用户输入数据,防止XSS攻击。
-
用法:
strip_tags($string, '<a><b>')(可选参数允许保留特定的标签)
10. csrf_token()(自定义或框架提供的函数)
-
作用:生成和验证CSRF令牌,防止跨站请求伪造攻击(CSRF)。
-
用法:具体实现依赖于使用的框架或自定义实现。
165

被折叠的 条评论
为什么被折叠?



