SQL注入

对输入进行正则过滤,对敏感字符进行替换

常用正则

$pregs = '/select|insert|update|CR|document|LF|eval|delete|script|alert|\>|\<|\'|\/\*|\#|\--|\ --|\/|\*|\-|\+|\=|\~|\*@|\*!|\$|\%|\^|\&|\(|\)|\/|\/\/|\.\.\/|\.\/|union|into|load_file|outfile/';
$_GET['data'] = preg_replace('$pregs','','$_GET['data']');

存在于搜索框中的SQL注入

使用反斜杠处理函数addslashes()函数

$_GET['search'] = addslashes($_GET['search']);

XSS

对用户输入进行正则替换

$pregs = '/select|insert|update|CR|document|LF|eval|delete|script|alert|\>|\<|\'|\/\*|\#|\--|\ --|\/|\*|\-|\+|\=|\~|\*@|\*!|\$|\%|\^|\&|\(|\)|\/|\/\/|\.\.\/|\.\/|union|into|load_file|outfile/';
$_GET['DATA'] = preg_replace('$pregs','','$_GET['DATA']');

存在于搜索框中的XSS

使用htmlspecialchars()函数把预定义字符转换为 HTML 实体

<?php
echo htmlspecialchars($_GET['search']);
?>

文件上传

对上传文件进行编码重命名,重新添加后缀

同时在返回文件名的上传中,可以防止文件名造成XSS

重命名文件名
$clean_user_avatar = $uploaddir . '/' . md5(time().mt_rand(10000,99999))|.'png';

弱口令

没什么说的,赶紧改密码吧!!!

$_SERVER['PHP_SELF']插入恶意代码漏洞

漏洞说明 https://blog.csdn.net/load_life/article/details/7674709

相关安全性:http://www.360doc.com/content/18/0819/20/58821437_779534430.shtml

使用htmlspecialchars()函数把预定义字符准换位HTML实体

在调用时包裹函数即可

htmlspecialchars($SERVER['PHP_SELF'])

文件包含

尽量使用include_once()包含指定文件

避免用户可传入变量包含

目录遍历

更改Apache配置

CSRF

登录界面login.php 登录验证界面logcheck.php

添加token验证

$_SESSION['logtoken'] = md5(unqid(microtime(true),true));

只需通过前端post传输form表单添加标签传输即可

<input type="hidden" name="logtoken" value="<?php echo $_SESSION['logtoken']; ?>">

在登录验证界面可添加if语句验证

if($_POST['logtoken']!=$_SESSION['logtoken']){
    die("无效token");
}
最后修改:2021 年 06 月 09 日
如果觉得我的文章对你有用,请随意赞赏