linux学习lesson46

Claude Opus 4.6编程辅助实战接入指南 编程辅助AI的核心价值在于提升开发者认知效率与工程落地质量,而非替代人工决策。其技术原理依赖上下文理解深度、跨语言符号绑定与长程逻辑一致性,显著增强代码生成的语义准确性和范式兼容性。在金融系统重构、嵌入式协议开发、教育场景代码生成等真实工程中,Claude Opus 4.6展现出对多范式混合代码(如Shell+Python+YAML)和复杂类型约束的强处理能力。但需注意其边界:不适用于实时系统、硬件寄存器映射等确定性执行场景。本文聚焦国内合规路径下的五种工程化接入方式——国产AI中台代理、本地桌面版+中转服 阅读详情



1 限定某个目录禁止解析

比喻网站有个目录可以上传图片的,别人通过一些手段上传php文件,那么就会解析该文件,这样容易被人上传木马文件,进而获取系统的权限,进行信息获取

其中SQL注入也是一种入侵,不过可以通过提交的端口做特殊符号的过滤,可以阻断这样入侵

核心配置文件内容

[root@linux01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/111.com"
ServerName 111.com
ServerAlias www.111.com aaa.com
<Directory /data/wwwroot/111.com/upload>
php_admin_flag engine off
</Directory>
ErrorLog "logs/111.com-error_log"
CustomLog "logs/111.com-access_%Y%m%d.log 86400" combined
</VirtualHost>

或者另外一种方法:

<VirtualHost *:80>
DocumentRoot "/data/wwwroot/111.com"
ServerName 111.com
ServerAlias www.111.com aaa.com
<Directory /data/wwwroot/111.com/upload>
<FilesMatch (.*)\.php(.*)>
Order allow, deny
Deny from all
</FilesMatch>
</Directory>
ErrorLog "logs/111.com-error_log"
CustomLog "logs/111.com-access_%Y%m%d.log 86400" combined
</VirtualHost>

创建文件:

[root@linux01 111.com]# mkdir upload
[root@linux01 111.com]# vim upload/1.php
<?php
phpinfo();
?>

重新加载配置文件:

[root@linux01 ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@linux01 ~]# /usr/local/apache2.4/bin/apachectl graceful

curl测试:

[root@linux01 ~]# curl -x127.0.0.1:80 111.com/upload/1.php
<?php
phpinfo();
?>

只能返回源码,无法解析内容


2 限定user_agent

需求:网站受到攻击了(CC攻击),就是被别人控制的肉鸡攻击站点,网站就会挂掉

CC攻击有一个特别明显的特征是:user_agent都是一样的固定的

所以可以通过限制user_agent,可以阻止攻击

[root@linux01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/111.com"
ServerName 111.com
ServerAlias www.111.com aaa.com
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} .*curl.* [NC,OR] //OR表示或的意思
RewriteCond %{HTTP_USER_AGENT} .*baidu.com.* [NC] //NC表示忽略大小写
RewriteRule .* - [F] //F表示forbidden的意思
</IfModule>
ErrorLog "logs/111.com-error_log"
CustomLog "logs/111.com-access_%Y%m%d.log 86400" combined
</VirtualHost>

重新加载配置文件:

[root@linux01 ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@linux01 ~]# /usr/local/apache2.4/bin/apachectl graceful

curl测试:

[root@linux01 ~]# curl -x127.0.0.1:80 111.com -I
HTTP/1.1 403 Forbidden
Date: Sun, 18 Nov 2018 02:00:32 GMT
Server: Apache/2.4.34 (Unix) PHP/5.6.32
Content-Type: text/html; charset=iso-8859-1

返回码是403,因为配置指定user-agent是curl不允许访问

自定义一个user-agent为hello:

[root@linux01 ~]# curl -A "hello" -x127.0.0.1:80 111.com -I
HTTP/1.1 200 OK
Date: Sun, 18 Nov 2018 02:03:30 GMT
Server: Apache/2.4.34 (Unix) PHP/5.6.32
Last-Modified: Wed, 14 Nov 2018 03:20:20 GMT
ETag: "8-57a9769fef5ef"
Accept-Ranges: bytes
Content-Length: 8
Content-Type: text/html

返回码是200,成功访问


3 php相关配置

查看php配置文件位置
/usr/local/php/bin/php -i|grep -i "loaded configuration file" (另外的办法就是在网站的访问文件创建一个1.php文件里添加函数phpinfo();,在浏览器访问即可查到)

[root@linux01 ~]# /usr/local/php/bin/php -i|grep -i "loaded configuration file"
Loaded Configuration File => /usr/local/php/etc/php.ini
PHP Warning:  Unknown: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in Unknown on line 0

编辑php配置文件:

[root@linux01 ~]# vim /usr/local/php/etc/php.ini
date.timezone=Asia/Shanghai
disable_functions //禁止函数,eval(一句话木马使用这个函数解析)
eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,proc_close,phpinfo

重新加载配置文件:

[root@linux01 ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@linux01 ~]# /usr/local/apache2.4/bin/apachectl graceful

curl测试:(需要把虚拟主机的配置文件的限制user-agent的配置去掉)

[root@linux01 ~]# curl  -x127.0.0.1:80 111.com/index.php
<br />
<b>Warning</b>:  phpinfo() has been disabled for security reasons in <b>/data/wwwroot/111.com/index.php</b> on line <b>2</b><br />

提示警告:phpinfo函数失效

在生产环境中,则不能把错误信息输出到浏览器上,暴露了文件的路
径,容易被黑客入侵

将错误信息关闭

[root@linux01 ~]# vim /usr/local/php/etc/php.ini
display_errors=Off

curl测试:

[root@linux01 ~]# curl  -x127.0.0.1:80 111.com/index.php

没有错误信息显示了

开启错误日志记录,方便问题的查找

[root@linux01 ~]# vim /usr/local/php/etc/php.ini
log_errors=On
error_log=/tmp/php_error_log

设置错误日志输出级别:测试环境E_ALL所有的警告,提示信息都记录,实际生产环境使用E_ALL & ~E_NOTICE(生产环境出现的E_NOTICE的频率很高,但不是错误)
error_reporting =E_ALL

重新加载配置文件:

[root@linux01 ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@linux01 ~]# /usr/local/apache2.4/bin/apachectl graceful

curl测试:

[root@linux01 ~]# curl  -x127.0.0.1:80 111.com/index.php

在这里插入图片描述

查看错误日志文件:

[root@linux01 ~]# cat /tmp/php_errors.log
[18-Nov-2018 02:42:14 UTC] PHP Warning:  phpinfo() has been disabled for security reasons in /data/wwwroot/111.com/index.php on line 2

注意:如果错误日志没有生成,需要手动创建,在设置777权限就行

创建一个测试文件:

[root@linux01 111.com]# vim 2.php
<?php
echo hello;
heelelelelle

curl测试:

[root@linux01 ~]# curl  -x127.0.0.1:80 111.com/2.php -I
HTTP/1.0 500 Internal Server Error
Date: Sun, 18 Nov 2018 02:50:08 GMT
Server: Apache/2.4.34 (Unix) PHP/5.6.32
X-Powered-By: PHP/5.6.32
Connection: close
Content-Type: text/html; charset=UTF-8

查看错误日志文件:
在这里插入图片描述

提示出现语法错误



需求:如果站点有AB两个目录,如果有黑客入侵了网站A目录,进而就会入侵B目录
所以可以对网站目录做隔离,与入侵目录隔离

open_basedir安全选项;做站点的隔离作用:隔离目录
open_basedir =/data/wwwroot/111.com/admin:/tmp///安全配置,tmp目录表示是上传文件的时候,临时存放地方

作用:只能访问/data/wwwroot/111.com/admin目录,而/data/wwwroot/111.com的目录无法访问了,做了隔离

curl测试:(admin目录)

[root@linux01 ~]# curl  -x127.0.0.1:80 111.com/admin/index.php -I
HTTP/1.1 200 OK
Date: Sun, 18 Nov 2018 03:03:17 GMT
Server: Apache/2.4.34 (Unix) PHP/5.6.32
X-Powered-By: PHP/5.6.32
Content-Type: text/html; charset=UTF-8

返回状态码200,访问成功

curl测试:(111.com目录)

[root@linux01 ~]# curl  -x127.0.0.1:80 111.com/index.php -I
HTTP/1.0 500 Internal Server Error
Date: Sun, 18 Nov 2018 03:03:24 GMT
Server: Apache/2.4.34 (Unix) PHP/5.6.32
X-Powered-By: PHP/5.6.32
Connection: close
Content-Type: text/html; charset=UTF-8

返回状态码500,无法访问

查看错误日志:

[root@linux01 ~]# cat /tmp/php_errors.log

在这里插入图片描述

因为在php.ini配置文件中,只能对所有的站点,不能单个站点配置;不过可以在不同的虚拟主机里做单个站点配置

虚拟主机的配置文件:

[root@linux01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
比如:
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/abc.com"
    ServerName abc.com
    ServerAlias www.abc.com
    php_admin_value open_basedir "/data/wwwroot/abc.com:/tmp/" (在对应的虚拟主机配置open_basedir)
    ErrorLog "logs/abc.com-error_log"
    CustomLog "logs/abc.com-access_log" common
</VirtualHost>

php_admin_value 这个参数可以定义php.ini里面的参数,还可以定义
error_log, log_errors, display_errors, error_reporting等等


扩展

apache开启压缩 http://ask.apelearn.com/question/5528
apache2.2到2.4配置文件变更 http://ask.apelearn.com/question/7292
apache options参数 http://ask.apelearn.com/question/1051
apache禁止trace或track防止xss http://ask.apelearn.com/question/1045
apache 配置https 支持ssl http://ask.apelearn.com/question/1029

MTK Linux DRM分析(八)- KMS drm_crtc.c CRTC 在 Linux DRM 子系统中是显示控制的核心,负责时序生成、模式设置和管线的调度。理解其工作原理和 API 对于进行底层图形开发、调试显示问题或 simply understanding how your graphics stack works 都至关重要。 阅读详情

相关推荐

FAST-LIO 实战:从 LI-Init 标定到 YAML 配置全解析

本文详细解析了FAST-LIO算法中LI-Init标定的关键步骤与YAML配置优化技巧。从激光雷达与IMU的时空标定原理到实战参数调优,提供了一套完整的解决方案,帮助开发者解决点云畸变、建图漂移等常见问题,提升SLAM系统在动态环境中的稳定性和精度。

weixin_42651281的博客 326

Linux 标准错误码参考

https://www.cnblogs.com/Jimmy1988/p/7485133.html 按Ctrl键+ G键“ - 提升标题`` - 有序列表`按百按按'顺序','无序列表','按'按CTRL + U` - 横线`按按按Ctrl +按住Ctrl + [R` - 撤销`按住Ctrl +键菜键键键键` ...

may02的博客 2661

算法基础之数组双指针(Leetcode题型归纳)

数组双指针(Leetcode题型归纳)1.前言2.双指针基础3.相向双指针3.1定义3.2真题分析3.2.1两数之和(1)3.2.2两数之和-输入有序数组(167)3.2.3三数之和(15)3.2.4最接近的三数之和(16)3.2.5四数之和(18)3.2.6盛最多水的容器(11)3.2.7有效三角形的个数(611)4.同向双指针-快慢指针4.1定义4.2真题分析4.1.1删除排序数组中的重复项(26)4.1.2移除元素(27)4.1.3删除排序数组中的重复项(80)4.1.4移动零(283)4.1.5数组

Buluchacha的博客 1034

lesson46-1:Linux 常用指令全解析:从基础操作到高效应用

Linux指令是操作系统的核心,掌握基础命令能显著提升工作效率。文章系统介绍了Linux指令的组成结构(命令+选项+参数)、常用命令及其应用场景,包括pwd查看当前路径、cd切换目录、ls显示文件、mkdir创建目录等基础操作。同时讲解了关键技巧:重定向控制数据流(>覆盖、>>追加)、管道(|)连接命令链、通配符批量操作,以及文件查看工具(cat/less/tail)。文章强调实践的重要性,建议读者通过日常练习加深理解,并提供了下一步学习方向。掌握这些内容可应对80%的日常Linux操作需

2402_82363599的博客 1602

基于轻量级神经网络MobileNet V2的水果识别种类算法研究

本文阐述了一种基于轻量级卷积神经网络MobileNet V2的水果分类与识别算法研究。为了最大限度地促进机械收获,需要一个检测系统,它可以让我们识别不同类别的水果。一个相对未开发的想法是使用深度学习和人工智能算法,不仅可以检测水果的种类,还可以检测水果是否成熟。这可以证明是有利可图的,因为它可以提供作物生长状况以及成熟和未成熟果实的个体数量,以及决定是否是收获时间的有用信息。第一步对数据进行了预处理,数据预处理技术在众多的深度学习计算中起到了重要作用。

qq_43556680的博客 1640

解决PADs VX2.7安装中的License失效与软件卡死问题

本文详细解析了PADs VX2.7安装过程中常见的License失效与软件卡死问题,提供了从破解工具选择、环境变量设置到输入法兼容性调整等实用解决方案。特别推荐使用Siemens EDA系列新版破解工具,并分享性能调优与定期维护技巧,帮助工程师高效解决安装难题。

weixin_29234239的博客 813

linux学习lesson32

目录 1 监控io性能 2 free命令 3 ps命令 4 查看网络状态 5 linux下抓包 1 监控io性能 iostat -x  磁盘使用 [root@worker1 ~]# iostat -x Linux 3.10.0-327.el7.x86_64 (worker1) 10/15/2018 _x86_64_ (2 CPU) avg-cpu: %us...

InfiniteIdea_Go的博客 397

水很深的深度学习(四): 卷积神经网络CNN

深度学习-CNN,卷积神经网络的概念 上世纪60年代,Hubel等人通过对猫视觉皮层细胞的研究,提出了感受野这个概念,到80年代,Fukushima在感受野概念的基础之上提出了神经认知机的概念,可以看作是卷积神经网络的第一个实现网络,神经认知机将一个视觉模式分解成许多子模式(特征),然后进入分层递阶式相连的特征平面进行处理

专注大数据与人工智能技术分享,欢迎私信加群互相学习! 3622

lesson46-2:Linux 高级指令全解析:从文件操作到系统管理

本文以 Ubuntu 22.04 为场景,系统梳理了文件操作(cp/mv/ln)、数据流(管道+grep+wc)、压缩归档(tar/gzip)、用户权限(chmod/SUID/SGID/Sticky Bit)及进程服务管理(ps/kill/systemctl)等 Linux 进阶指令,并通过日志轮转脚本、多用户协作目录两个实战案例,将“一切皆文件”与“组合小程序完成大任务”的 Linux 哲学贯穿始终,为读者从“会用”跨越到“精通”提供了一份可直接落地的速查手册。

2402_82363599的博客 1277

[特殊字符] 从零构建携程/飞猪机票价格爬虫:Python异步抓取与反爬对抗实战

在出行决策、竞品分析、价格预测模型训练等场景中,稳定获取携程(Ctrip)和飞猪(Fliggy)的实时机票价格波动数据是刚需。然而,这两大平台均部署了业界顶尖的反爬体系——包括但不限于:动态请求签名(SignToken设备指纹采集(UACanvasWebGL接口参数加密(X-Sign_abtestcookie混淆)频率限制与 IP 封禁(滑动窗口 + 行为检测)目录前言:为什么需要自建机票价格爬虫?一、技术选型与项目架构1.1 核心技术栈1.2 系统架构图(文字描述)1.3 法律与道德声明。

2201_76125261的博客 337

《YOLOv8:从入门到实战》专栏介绍 & 专栏目录

本专栏涵盖了丰富的YOLOv8算法从入门到实战系列教程,专为学习YOLOv8的同学而设计,堪称全网最详细的教程!🌈🌈🌈

小哥谈 6488

【lesson46】进程通信之system V(共享内存)

进程通信之system V(共享内存)

m0_67077469的博客 1321

以太网PHY寄存器

并且,值得注意的是,由于目前很多百兆的PHY芯片其MAC接口主流的都是SMII/S3MII,8个端口的接口是相互关联的,一个端口设置Isolate可能会影响其他端口的正常使用,因此在使用中注意不要随意更改bit10的状态。Bit10和bit11的区别是,bit11的配置在强制情况下生效,PHY只能工做与bit11指定的工作模式,而bit10的配置在非强制配置情况下生效,仅仅控制PHY在AN时候的优先级,偏向于Maser或者Slave,但是最终的工作模式看协商的结果,不一定和优先级配置的结果一致。

mangofu的博客 292

linux学习lesson22

目录 1 yum更换国内源 2 yum下载rpm包 3 源码包安装 1 yum更换国内源 [root@worker1 ~]# cd /etc/yum.repos.d [root@worker1 yum.repos.d]# rm -f dvd.repo 法1: [root@worker1 yum.repos.d]# wget http://mirrors.aliyun.com/rep...

InfiniteIdea_Go的博客 330

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

lesson45:Linux基础入门指南:从内核到实践操作全解析

这是一篇关于Linux基础的内容摘要,涵盖Linux内核与发行版解析、VMware虚拟机安装配置、Ubuntu系统安装、快照功能使用、目录系统详解及基础命令实战等内容,旨在帮助读者从理论到实践全面入门Linux系统,并提供了进阶学习路径和资源推荐。

2402_82363599的博客 1668

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

lesson 01 Hello Sdl

在linux 上安装 SDL2(我的机器是哦linuxmint) SDL2  我们选择下载源码自己编译安装()SDL2.0源码下载 在页面中选择自己需要的版本,当然你也可以选择利用apt-get 安装 //下载安装后的 测试文件 /*************************************************************************

Antlook的博客 628

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Linux下fast.ai环境搭建:CUDA对齐与Conda实战指南

深度学习框架依赖底层系统支持,尤其在Linux环境下,GPU加速能力并非开箱即用,而是取决于CUDA工具链、NVIDIA驱动、PyTorch二进制与Python运行时的精确ABI对齐。理解CUDA版本兼容性、驱动运行时匹配原理,是解决‘torch.cuda.is_available()返回False’或‘CUDA out of memory’等高频问题的关键技术基础。Conda凭借其跨语言依赖管理能力,可统一处理libtorch、cudnn、curand等系统级库,显著优于pip在复杂环境中的脆弱性。本文聚

FLY_THINK2012的博客 455

linux中sln作用,linuxHighPerformanceServer.sln

Microsoft Visual Studio Solution File, Format Version 12.00# Visual Studio 15VisualStudioVersion = 15.0.28307.960MinimumVisualStudioVersion = 10.0.40219.1Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC94...

weixin_30068505的博客 411

Lesson_6 作业_2 ---- 银行账户模拟

一、作业描述   Account.java文件中定义了一个银行帐户类Account,其中包括了帐户名属性accountName、存款余额属性amount、存款方法deposit(doublemoney)。阅读并理解这个类,并为其增加一个“取款”方法withdraw():当存款余额大于取款金额时,执行取款修改余额;当存款余额小于取款金额时,不执行取款;以返回值0表示取款成功,返回值1表示取款...

weixin_30737363的博客 135

我用两个打火机,把i.MX6ULL变成了火灾预警系统

传统烟雾传感器只能等烟飘到了才报警,但AI视觉误报率高。那能不能两个结合起来?我在i.MX6ULL上做了套「传感器+AI」双重检测系统,从YOLOv8n训练到ONNX部署到融合评分全链路自研。文章包含:数据集选择、模型训练、评分算法、状态机设计、以及5个真实踩坑记录。全部开源。

zhushenchuanshuo的博客 923

MOSS-TTS-GGUF终极指南:如何在普通CPU上运行20种语言的本地语音合成模型

MOSS-TTS-GGUF是OpenMOSS团队推出的革命性文本转语音解决方案,通过GGUF量化格式与llama.cpp后端实现了完全本地化的20种语言语音合成。这个项目让开发者能够在普通CPU上运行高质量的TTS模型,无需依赖GPU或云端服务,真正实现了语音合成的边缘部署。 ## 🔥 为什么选择MOSS-TTS-GGUF? 在AI语音合成领域,传统的TTS模型通常面临三大挑战:**硬件要求

gitblog_00220的博客 647

JP4-1-1-MyLesson项目简介

MyLesson项目简介,包括项目介绍,权限介绍,环境介绍,技术栈介绍,环境初始化操作,数据库表的创建等。

周航宇的博客 2956

工作中使用到的单词(软件开发)_第三版

====

sun0322 1万+

WebGoat2026年版本(全10个模块另附其他模块)通关教程

本文简要介绍了WebGoat安全测试平台的部署和使用方法。主要内容包括:1)环境配置(Java23+Maven3.9.11)和启动步骤;2)HTTP基础任务,通过BurpSuite抓包分析POST请求;3)HTTP代理任务,要求修改请求方法和添加特定头信息;4)开发者工具任务,使用控制台获取随机数和网络请求中的数值;5)CIA三要素测验题。文章提供了具体操作截图和Python请求示例,帮助读者完成各项安全测试任务,适合作为Web应用安全测试的实操参考手册。

csdnkazusa的博客 1359

linux学习lesson15

目录 1 磁盘格式化 2 磁盘挂载 3 手动增加swap空间 1 磁盘格式化 磁盘格式化命令:mke2fs、mkfs.ext2、mkfs.ext3、mkfs.ext4 和mkfs.xfs 现在以mke2fs为例:常用的参数 -b:表示分区时设定每个数据区块占用的空间大小。目前,每个数据块支持1024B、2048B以及4096B。 -i:表示设定inode的大小。 -N:表示...

InfiniteIdea_Go的博客 2716

linux学习lesson53

文章目录1 php-fpm的pool2 php-fpm慢执行日志3 open_basedir4 php-fpm进程管理 1 php-fpm的pool 支持多个pool的运行网站:隔离站点资源和独立配置 增加一个pool: [root@linux01 ~]# vim /usr/local/php/etc/php-fpm.conf [global] pid = /usr/local/php-fpm/...

InfiniteIdea_Go的博客 760
上一篇: linux学习lesson45
下一篇: linux学习lesson47
InfiniteIdea_Go
博客等级 码龄8年 3粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值