Linux Shell脚本教程

v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}

Normal
0
false

7.8 磅
0
2

false
false
false

EN-US
ZH-CN
X-NONE

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-font-kerning:1.0pt;}

Linux Shell脚本教程

.背景

单纯的PHP也可以实现断点续传下载,但单纯的PHP实现代码会比较复杂,而且没有多线程下载,速度会比较慢。所以放弃PHP下载的方案,用linux下的axel命令实现。

.shell教程

1. 变量定义。

使用变量,最好都加 {} 边界符

2. 注释

没有多行注释,只能每一行加一个#号。但可以通过其它变通的方法实行多行注释,在编辑器不会着色,有兴趣的自行搜索。

3. 调用linux命令

不需要返回直接调用的:cd ${path}/cdn_log_download/echo/;rm
-f $f_name

有返回的:del_month=`date
+"%Y-%m" -d "-2month"`

使用命令实现算术运算:length=`expr
${#file_name_arr[*]} - 1`

使用命令实现关系运算:$val -eq
0

使用tr 命令分割字符:($(echo
$download_list | tr "||" "\n"))

 例子:

 将所以上上个月下载日志文件删除

del_list=`cd
/home/domaininfo/cdn_log_download/echo/;ls --full-time | awk ‘{ print $6,$9 }‘
| grep "2015-12"`

 通道符:|

awk

grep:grep –rn “echo” *

4. 调用PHP,并传参

download_list=`cd
${path};/usr/bin/php cdn_log_download.php ‘get_list‘` 

5. 数组

定义多个数组,可以通过空格和换行符来实现

读取数组:f_name=${del_arr[$i]}

获取数组长度:${#del_arr[*]}

6. while循环

7. if else语句

8. break和continue命令

9. 判断文件夹或文件是否存在

if [ ! -f "$echo_path" ]

if [ ! -d "$save_file_path" ]

10. 输出重定向

$ who > users 覆盖

$ who >> users 追加

11. 文件名定义和执行

xxx.sh

./xxx.sh


编号


漏洞名称


漏洞等级


危害性描述


整改意见


1


SQL盲注



攻击者可以在受影响的系统上执行任意的 SQL 语句。这可能会损害您的数据库的完整性和 /或暴露敏感信息。在某些情况下,它可能是可以读到或写出来的文件,或在底层操作系统上执行外壳命令。一定的 SQL 服务器如微软SQL Server包含存储和扩展程序(数据库服务器的功能)。如果攻击者可以获得这些程序,它可能会危及整个机器。


[1] 对用户的输入进行严格过滤,包括所有的参数,URL和HTTP头部等所有需要传给数据库的数据。

包括但不限于以下字符及字符串

select and or like regxp from where update exec
order by having drop delete ( ) [ ] < > , . ; : ‘ " # % + -


漏      洞      地       址

http://tjj.gaozhou.gov.cn/ index.php/News/more/id/374

参数id


_ = / * @

[2]预编译SQL语句,而不要动态组装SQL语句,否则必须确保在使用输入的数据组装成SQL语句之前,对特殊字符进行预处理。

[3]以最小权限执行 SQL 语句


2


“ 点 击 劫持”:X-Fram e-Options

头失踪



X-Frame-Options
HTTP 响应头,可以指示浏览器是否应该加载一个 iframe 中的页面。网 站 可 以 通
过 设 置

X-Frame-Options 阻止站点内的页面被其他页面嵌入从而防止点击劫持。


配置您的web服务器包括

一个X-Frame-Options头


3


会话 Cookie 缺  乏

HTTPOnly 标志



当cookie设置了HTTPOnly标志,该cookie只有服务器脚本才可以访问,而客户端(浏览器)脚本则无法访问,从而降低Cookie被跨站脚本漏洞窃取的风险。

Cookie name: "PHPSESSID" Cookiedomain:

"tjj.gaozhou.gov.cn"


服务器设置 Cookie 时,添加 HTTPOnly 标志。注意:添加之后,js脚本将无法访问cookie.


4


OPTIONS 方法未禁用



OPTIONS 方法可以查询 web 服务器所支持的方法列表,它可能暴露敏感信息,比如可查询服务器支持哪些非安全的方法,便于恶意用户进行下一步攻击。


禁用OPTIONS 方法

安全评估:

1、安全评分分数:33

2、网站安全等级:比较危险

建议:参照整改意见开展漏洞修复工作。

Normal
0

7.8 磅
0
2

false
false
false

EN-US
ZH-CN
X-NONE

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:等线;}

时间: 2024-10-25 21:09:38

Linux Shell脚本教程的相关文章

Linux Shell脚本教程:30分钟玩转Shell脚本编程(笔记)

资料链接 Shell有两种执行命令的方式: 交互式(Interactive):解释执行用户的命令,用户输入一条命令,Shell就解释执行一条. 批处理(Batch):用户事先写一个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地敲命令. shell脚本有循环和控制语句,为解释执行,不需要编译. 常见的Shell脚本解释器: 有bash.sh.csh.ksh等.我们说的Shell其实是指Shell脚本解释器. bash:Linux默认的shell

LINUX SHELL脚本攻略笔记[速查]

Linux Shell脚本攻略笔记[速查] 资源 shell script run shell script echo printf 环境变量和变量 pgrep shell数学运算 命令状态 文件描述符和重定向 cat 数组和关联数组 alias date 调试脚本 函数和参数 管道 读取命令输出 read 字段分隔符和迭代器 循环 比较和测试 find xargs tr md5sum sha1sum 对目录进行校验 sort uniq tempfile split bash变量匹配切分 exp

Linux Shell系列教程之(六)Shell数组

本文是Linux Shell系列教程的第(六)篇,更多shell教程请看:Linux Shell系列教程 Shell在编程方面非常强大,其数组功能也非常的完善,今天就为大家介绍下Shell数组的用法. Shell支持一维数组(不支持多维数组),并且没有限定数组的大小. 类似与C语言,数组元素的下标由0开始编号.获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0. 一.Shell数组的定义 在Shell中,用括号来表示数组,数组元素之间用“空格”分割开. 定义数组的一般形式

Linux Shell系列教程之(三)Shell变量

本文是Linux Shell系列教程的第(三)篇,更多shell教程请看:Linux Shell系列教程 Shell作为一种高级的脚本类语言,也是支持自定义变量的.今天就为大家介绍下Shell中的变量相关知识. 为使Shell编程更有效,系统提供了一些Shell变量.Shell变量可以保存诸如路径名.文件名或者一个数字这样的变量名. Shell将其中任何设置都看做文本字符串.有两种变量,本地和环境.严格地说可以有 4种,但其余两种是只读的,可以认为是特殊变量,它用于向Shell脚本传递参数. 定

Linux Shell系列教程之(十一)Shell while循环

本文是Linux Shell系列教程的第(十一)篇,更多Linux Shell教程请看:Linux Shell系列教程 在上一篇Linux Shell系列教程之(十)Shell for循环中,我们已经对Shell 循环语句的for循环进行了介绍,本篇给大家介绍下Shell 中另一种循环语句:Shell while循环. Shell while循环语法及特点 Shell while循环的语法如下所示: while command do Statement(s) to be executed if

Linux----编写可靠Linux shell脚本的八个建议

编写可靠Linux shell脚本的八个建议 指定bash shell 脚本的第一行,#!之后应该是什么? 如果拿这个问题去问别人,不同的人的回答可能各不相同.我见过/usr/bin/env bash,也见过/bin/bash,还有/usr/bin/bash,还有/bin/sh,还有/usr/bin/env sh.这算是编程界的"'茴'字四种写法"了. 在多数情况下,以上五种写法都是等价的.但是,写过程序的人都知道:"少数情况"里往往隐藏着意想不到的坑. 如果系统的

Linux Shell脚本攻略(1.10)

1.10 获取.设置日期和延时 很多应用程序需要以不同的格式打印日期.设置日期和时间.根据日期和时间执行某项操作.延时通常用于在程序执行过程中提供一段等待时间(比如1秒).同样的,我们也能够一多种格式打印日期,或者在命令行中设置日期.在类Unix系统中,日期被存储为一个整数,其大小为自世界标准时间起所流逝的秒数.这种计时方式称为纪元时或Unix时间. 1.10.1 获取.设置时间 以下的程序给出了多种用法: #!/bin/bash start=$(date +%s) #获取纪元时间 date #

Linux Shell脚本攻略(1.8)

1.8 使用别名 linux中的别名就相当于windows中的快捷方式,使用别名可以省去用户输入一长串命令序列的麻烦. 1.8.1 创建临时别名(快捷方式) alias new_command='command sequence' #格式说明 alias install='sudo apt-get install' #实例说明 在声明 install='sudo apt-get install'之后,就可以用install代替'sudo apt-get install'了.使用这种方式声明的别名

Linux shell脚本基础学习详细介绍(完整版)一

Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Linux 脚本编写基础◆1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序. 当编辑好脚本时,如果要执行该脚本,还必须使其可执行. 要使脚本可执