PHP防止注入方法

STM32H5 USB虚拟串口:用Classic驱动移植CDC实践 USB虚拟串口(CDC)是嵌入式系统最常用的主机通信方式之一,本质是借助USB协议模拟串口收发,无需额外驱动即可在PC上生成COM口。其实现依赖USB设备协议栈完成枚举、控制传输与批量传输。传统USBD Classic库不依赖RTOS,代码轻量、调用链短,非常适合裸机或轻量状态机架构;而USBX功能强大但需要ThreadX内核,资源开销较大。在电机控制器、传感器采集等场景中,日志输出与参数配置仅需简单的双向数据通道,Classic驱动往往更务实。本文基于STM32H5平台,详细梳理了使用Classic驱动移 阅读详情

转自:http://czy4411741.blog.163.com/blog/static/342031272009213105256288/

安全,PHP代码编写是一方面,PHP的配置更是非常关键。

  我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最主要就是要配置php.ini中的内容,让我们执行  php能够更安全。整个PHP中的安全设置主要是为了防止phpshell和SQL Injection的攻击,一下我们慢慢探讨。我们先使用任何编辑工具打开  /etc/local/apache2/conf/php.ini,如果你是采用其他方式安装,配置文件可能不在该目录。

  (1) 打开php的安全模式

  php的安全模式是个非常重要的内嵌的安全机制,能够控制一些php中的函数,比如system(),

  同时把很多文件操作函数进行了权限控制,也不允许对某些关键文件的文件,比如/etc/passwd,

  但是默认的php.ini是没有打开安全模式的,我们把它打开:

  safe_mode = on

  (2) 用户组安全

  当safe_mode打开时,safe_mode_gid被关闭,那么php脚本能够对文件进行访问,而且相同

  组的用户也能够对文件进行访问。

  建议设置为:

  safe_mode_gid = off

  如果不进行设置,可能我们无法对我们服务器网站目录下的文件进行操作了,比如我们需要

  对文件进行操作的时候。

  (3) 安全模式下执行程序主目录

  如果安全模式打开了,但是却是要执行某些程序的时候,可以指定要执行程序的主目录:

  safe_mode_exec_dir = D:/usr/bin

  一般情况下是不需要执行什么程序的,所以推荐不要执行系统程序目录,可以指向一个目录,

  然后把需要执行的程序拷贝过去,比如:

  safe_mode_exec_dir = D:/tmp/cmd

  但是,我更推荐不要执行任何程序,那么就可以指向我们网页目录:

  safe_mode_exec_dir = D:/usr/www

  (4) 安全模式下包含文件

  如果要在安全模式下包含某些公共文件,那么就修改一下选项:

  safe_mode_include_dir = D:/usr/www/include/

  其实一般php脚本中包含文件都是在程序自己已经写好了,这个可以根据具体需要设置。

  (5) 控制php脚本能访问的目录

  使用open_basedir选项能够控制PHP脚本只能访问指定的目录,这样能够避免PHP脚本访问

  不应该访问的文件,一定程度上限制了phpshell的危害,我们一般可以设置为只能访问网站目录:

  open_basedir = D:/usr/www

  (6) 关闭危险函数

  如果打开了安全模式,那么函数禁止是可以不需要的,但是我们为了安全还是考虑进去。比如,

  我们觉得不希望执行包括system()等在那的能够执行命令的php函数,或者能够查看php信息的

  phpinfo()等函数,那么我们就可以禁止它们:

  disable_functions = system,passthru,exec,shell_exec,popen,phpinfo

  如果你要禁止任何文件和目录的操作,那么可以关闭很多文件操作

  disable_functions = chdir,chroot,dir,getcwd,opendir,readdir,scandir,fopen,unlink,delete,copy,mkdir,   rmdir,rename,file,file_get_contents,fputs,fwrite,chgrp,chmod,chown

  以上只是列了部分不叫常用的文件处理函数,你也可以把上面执行命令函数和这个函数结合,

  就能够抵制大部分的phpshell了。

  (7) 关闭PHP版本信息在http头中的泄漏

  我们为了防止黑客获取服务器中php版本的信息,可以关闭该信息斜路在http头中:

  expose_php = Off

  比如黑客在 telnet www.12345.com 80 的时候,那么将无法看到PHP的信息。

  (8) 关闭注册全局变量

  在PHP中提交的变量,包括使用POST或者GET提交的变量,都将自动注册为全局变量,能够直接访问,

  这是对服务器非常不安全的,所以我们不能让它注册为全局变量,就把注册全局变量选项关闭:

  register_globals = Off

  当然,如果这样设置了,那么获取对应变量的时候就要采用合理方式,比如获取GET提交的变量var,

  那么就要用$_GET['var']来进行获取,这个php程序员要注意。

  (9) 打开magic_quotes_gpc来防止SQL注入

  SQL注入是非常危险的问题,小则网站后台被入侵,重则整个服务器沦陷,

  所以一定要小心。php.ini中有一个设置:

  magic_quotes_gpc = Off

  这个默认是关闭的,如果它打开后将自动把用户提交对sql的查询进行转换,

  比如把 ' 转为 \'等,这对防止sql注射有重大作用。所以我们推荐设置为:

  magic_quotes_gpc = On

  (10) 错误信息控制

  一般php在没有连接到数据库或者其他情况下会有提示错误,一般错误信息中会包含php脚本当

  前的路径信息或者查询的SQL语句等信息,这类信息提供给黑客后,是不安全的,所以一般服务器建议禁止错误提示:

  display_errors = Off

  如果你却是是要显示错误信息,一定要设置显示错误的级别,比如只显示警告以上的信息:

  error_reporting = E_WARNING & E_ERROR

  当然,我还是建议关闭错误提示。

  (11) 错误日志

  建议在关闭display_errors后能够把错误信息记录下来,便于查找服务器运行的原因:

  log_errors = On

  同时也要设置错误日志存放的目录,建议根apache的日志存在一起:

  error_log = D:/usr/local/apache2/logs/php_error.log

  注意:给文件必须允许apache用户的和组具有写的权限。

  MYSQL的降权运行

  新建立一个用户比如mysqlstart

  net user mysqlstart fuckmicrosoft /add

  net localgroup users mysqlstart /del

  不属于任何组

  如果MYSQL装在d:\mysql ,那么,给 mysqlstart 完全控制 的权限

  然后在系统服务中设置,MYSQL的服务属性,在登录属性当中,选择此用户 mysqlstart 然后输入密码,确定。

  重新启动 MYSQL服务,然后MYSQL就运行在低权限下了。

  如果是在windos平台下搭建的apache我们还需要注意一点,apache默认运行是system权限,

  这很恐怖,这让人感觉很不爽.那我们就给apache降降权限吧。

  net user apache fuckmicrosoft /add

  net localgroup users apache /del

  ok.我们建立了一个不属于任何组的用户apche。

  我们打开计算机管理器,选服务,点apache服务的属性,我们选择log on,选择this account,我们填入上面所建立的账户和密码,

  重启apache服务,ok,apache运行在低权限下了。

  实际上我们还可以通过设置各个文件夹的权限,来让apache用户只能执行我们想让它能干的事情,给每一个目录建立一个单独能读写的用户。

  这也是当前很多虚拟主机提供商的流行配置方法哦,不过这种方法用于防止这里就显的有点大材小用了。

[QMT量化交易小白入门]-八十九、深度学习训练多维特征进行金融价格行情预测 本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。 阅读详情

相关推荐

物联网低功耗广域网NB-IoT开发(一):初识NB-IoT

(二)NB-IoT的关键特性: (三)NB-IoT的应用场景: 二、NB-IOT介绍

weixin_49763156的博客 852

php.ini配置(Linux环境)

php.ini设置,上传大文件: post_max_size = 128M upload_max_filesize = 128M #这两个设置一样即可,可以更大但要注意超时 max_execution_time = 30 max_input_time = 600 memory_limit = 32M 修改/etc/httpd/conf.d/php.conf SetO

太阳之影的it博客 2742

深入理解C++23的Deducing this特性(上):基础概念与语法详解

C++23标准中引入的"Deducing this"特性是一项重大革新,它不仅改变了我们编写成员函数的方式,还为模板元编程和设计模式实现带来了新的可能。

weixin_61470881的博客 1332

linux系统下查找及修改PHP配置文件php.ini的路径方法

linux系统下查找及修改PHP配置文件ini的路径方法一、查找PHP配置文件第一种方法第二种方法 一、查找PHP配置文件 第一种方法 说到查找,当然首先想到的是find命令。执行如下命令,即可查找到php.ini文件 find / -name php.ini 第二种方法 php --ini 打印出phpinfo(),然后就可以看出了,如下: php -i |grep php.ini //php -i其实就是输出phpinfo php -r "phpinfo();" |grep php.in

徊忆羽菲 7384

1.28寸圆屏LCD驱动开发:GC9A01与RT-Thread嵌入式实现

圆形TFT-LCD是一种面向可穿戴、IoT终端的紧凑型人机交互显示技术,其核心在于SPI/QSPI接口时序控制与GRAM内存映射原理。通过驱动芯片(如GC9A01)完成电源管理、伽马校正和MADCTL方向配置,可实现低功耗、高刷新率的图形渲染。该技术显著提升嵌入式设备的UI表现力与空间利用率,在智能手环、传感器节点、微型HMI等资源受限场景中具备突出工程价值。本文围绕1.28寸圆屏LCD模块,详解硬件接口规范、RT-Thread下QSPI驱动架构及Bresenham算法优化实践。

weixin_42599908的博客 155

从 SAP_FLP_USER 到项目落地:把 SAP S/4HANA 中的 SAP Fiori 授权体系真正讲透

SAP Fiori授权体系涉及前端访问、应用入口和后台业务对象三层权限,仅配置基础角色如SAP_FLP_USER无法满足实际业务需求。项目实践中常见用户能看到应用磁贴但无法访问数据的问题,多因授权模型设计不完整所致。SAP建议采用分层授权策略:基础层确保launchpad访问能力,业务层配置具体应用权限。管理员角色SAP_FLP_ADMIN需结合业务权限使用,测试时可临时配置S_SERVICE=*权限,但生产环境应遵循最小权限原则。完整的授权设计需参考SAP Fiori Apps Reference Lib

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 132

linux 下php.ini_linux下如何修改php.ini路径

linux修改php.ini路径的方法:首先通过命令“sudo find / -name php.ini”查找PHP配置文件;然后通过“--with-config-file-path”来修改PHP配置文件即可。Linux下查找及修改PHP配置文件ini的路径一、查找PHP配置文件说到查找,当然首先想到的是find命令。执行如下命令,即可查找到php.ini文件sudo find / -name p...

weixin_32029321的博客 1070

Codex 调试记录获取完全指南:日志查看、工具调用与实战排查教程

本文主要介绍了Codex 调试记录获取完全指南:日志查看、工具调用与实战排查教程,希望能对使用Codex的同学们有所帮助。 文章目录 1. 背景 2. 实战教程

weixin_43178406的博客 6万+

php.ini安全配置详细解释

PHP本身再老版本有一些问题,比如在 php4.3.10和php5.0.3以前有一些比较严重的bug,所以推荐使用新版。另外,目前闹的轰轰烈烈的SQL   Injection也是在PHP上有很多利用方式,所以要保证  安全,PHP代码编写是一方面,PHP的配置更是非常关键。  我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最主要

cnbird's blog 1548

74.9008深度刷机原理|高通QPST/Firehose底层刷写协议详解

移动设备刷机与底层维修技术指南 本文为移动设备维修人员和高级玩家提供全面的刷机与底层维修技术指南,涵盖高通、联发科和苹果A系列芯片的主要操作。 主要内容 核心操作:Bootloader解锁、Fastboot刷写、EDL深度修复、iTunes DFU模式恢复和分区表重建 适用场景:系统故障修复、底层损坏恢复、安全限制解除、系统降级和深度硬件维修 关键技术:详细解析刷机协议栈层级、关键分区作用和刷机安全机制 操作步骤: 环境搭建与驱动安装 Bootloader解锁(以小米为例) 高通机型系统刷写 苹果设备DFU

2601_95651806的博客 205

VisionMaster脚本调试(VS)

使用VS调试VisionMaster 脚本

yu_fujiang的专栏 3292

linux 下php.ini_开源Linux 操作系统下的php.ini 的配置说明

Linux的php.ini存在什么地方?/usr/local/lib/php.ini,可以用vi进行编辑。关于php.ini这个文件必须命名为’php.ini’并放置在httpd.conf中PHPINIDir指令指定的目录中。最新版本的php.ini可以在下面两个位置查看:http://cvs.php.net/viewvc.cgi/php-src/php.ini-recommended?view=...

weixin_35773344的博客 402

机械式激光雷达实现原理以及特性总结

本文介绍了机械式激光雷达的技术原理和核心特性。该技术通过机械旋转结构实现360°三维扫描,采用飞行时间法测距并生成点云数据。核心优势包括全向扫描、长距高精度和成熟度高,但存在体积大、成本高、可靠性受限等局限。典型应用于自动驾驶测试车、测绘建模等领域。与固态激光雷达相比,机械式在视场角和探测距离方面有优势,但在体积、成本和可靠性方面处于劣势。该技术目前主要应用于对成本不敏感的专业场景。

start_up_go的博客 262

PHP防止SQL注入的方法

1.前端输入口限制特殊字符输入2.后端做变量转化,过滤和变量参数话​​​​​​​前端input部分 后端php部分一: 后端php部分二: php7 mysql防注入_php如何防sql注入?_雾里听风的博客-优快云博客SQL注入(SQLi)是一种注入攻击,,可以执行恶意SQL语句。它通过将任意SQL代码插入数据库查询,使攻击者能够完全控制Web应用程序后面的数据库服务器。攻击者可以使用SQL注入漏洞绕过应用程序安全措施;可以绕过网页或Web应用程序的身份验证和授权,并检索整个SQL数据库的内

tongluren381的博客 4111

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

mysql防止php注入,PHP+Mysql防止SQL注入的方法

这篇文章介绍的内容是关于PHP+Mysql防止SQL注入的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下方法一:mysql_real_escape_string -- 转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集 !$sql = "select count(*) as ctr from users where username='".mysql_rea...

weixin_31423913的博客 300

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

php中防止SQL注入的方法

什么是SQL注入? SQL注入大部分情况下都是由于并没有对用户提交的数据、URL参数等进行过滤,而恰恰在这些未被过滤的参数或数据中存在了sql执行语句,最终导致数据库的数据被篡改、被导出等风险。 怎样防止? 【一、在服务器端配置】 安全,PHP代码编写是一方面,PHP的配置更是非常关键。 修改配置文件php.ini (1) 打开php的安全模式 php的安全模式是个非常重要的内嵌的安全机...

Again yy 2395

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

PHP中防止SQL注入的方法

【一、在服务器端配置】 安全,PHP代码编写是一方面,PHP的配置更是非常关键。我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最主要就是要配置php.ini中的内容,让我们执行 php能够更安全。整个PHP中的安全设置主要是为了防止phpshell和SQL Injection的攻击,一下我们慢慢探讨。我们先使用任...

weixin_34297704的博客 217

mysql php 防注入,PHP+mysql防止SQL注入的方法小结

本文实例讲述了PHP+mysql防止SQL注入的方法。分享给大家供大家参考,具体如下:SQL注入例:脚本逻辑$sql = "SELECT * FROM user WHERE userid = $_GET[userid] ";案例1:SELECT * FROM t WHERE a LIKE '%xxx%' OR (IF(NOW=SYSDATE(), SLEEP(5), 1)) OR b LIKE '...

weixin_31708209的博客 395

php 防注入的方法,PHP防止SQL注入方法

PHP防止SQL注入方法2019-08-1294我们在查询数据库时,出于安全考虑,需要过滤一些非法字符防止SQL恶意注入,请看一下函数:方法一:functioninjCheck($sql_str){$check=preg_match('/select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfi...

weixin_39603476的博客 243

php登录界面防止sql注入,PHP简单实现防止SQL注入的方法

本文实例讲述了PHP简单实现防止SQL注入的方法。分享给大家供大家参考,具体如下:方法一:execute代入参数if(count($_POST)!= 0) {$host = 'aaa';$database = 'bbb';$username = 'ccc';$password = '***';$num = 0;$pdo = new PDO("mysql:host=$host;dbname=$dat...

weixin_39903538的博客 240

php实现防止sql注入的通用方法,PHP简单实现防止SQL注入的方法

本文实例讲述了PHP简单实现防止SQL注入的方法。分享给大家供大家参考,具体如下:方法一:execute代入参数if(count($_POST)!= 0) {$host = 'aaa';$database = 'bbb';$username = 'ccc';$password = '***';$num = 0;$pdo = new PDO("mysql:host=$host;dbname=$dat...

weixin_31238109的博客 981

mysql语句防止攻击_php有效防止SQL注入攻击的三种方法

SQL注入是一种代码注入技术,用通过表单域插入的恶意SQL语句来攻击Web应用程序,并且通常会提取重要的数据库信息。这是一个非常关键的安全漏洞,它可以完全破坏数据库,所以最需要使用适当的代码来保护应用程序。本文章向大家介绍php有效防止SQL注入攻击的三种方法。方法一:使用转义字符串mysql_real_escape_string开发人员通常使用PHP函数mysql_real_escape_str...

weixin_33279969的博客 439

php中防止shell注入的方法

一般来说用户提交内容是包含在命令行参数里面的(如果连可执行文件名和路径都由用户输入决定的话那还防什么注入……) 这时候可以用escapeshellarg这个函数,它给整个参数加上引号并且escape所有需要的字符,让整个参数正确包含在一对引号中间。而escapeshellcmd只是escape了几个必要的字符(|>之类的),并不能保证参数本身也是正确的,从这个意义上来说escapeshellar

无效的博客 5669

php 防止mysql注入_PHP+Mysql防止SQL注入的方法

这篇文章介绍的内容是关于PHP+Mysql防止SQL注入的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下我的官方群点击此处。方法一:mysql_real_escape_string -- 转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集 !$sql = "select count(*) as ctr from users where username='"...

weixin_30909873的博客 322

防止sql注入的方式php,探讨php中防止SQL注入最好的方法是什么

本篇文章是对在php中如何防止sql注入进行了详细的分析介绍,需要的朋友参考下如果用户输入的是直接插入到一个SQL语句中的查询,应用程序会很容易受到SQL注入,例如下面的例子:$unsafe_variable = $_POST['user_input'];mysql_query("INSERT INTO table (column) VALUES ('" . $unsafe_variable . ...

weixin_32373123的博客 115

PHP+Mysql防止SQL注入的方法

这篇文章介绍的内容是关于PHP+Mysql防止SQL注入的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 我的官方群点击此处。 方法一: mysql_real_escape_string -- 转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集 ! $sql = "select count(*) as ctr from users where us...

weixin_43814458的博客 406
上一篇: JavaScript解析Json字符串的性能比较
下一篇: php 防注入
MemRay
博客等级 码龄18年 447粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值