Web安全与防护 (微课版) 课件 项目八安全的应用发布_第1页
Web安全与防护 (微课版) 课件 项目八安全的应用发布_第2页
Web安全与防护 (微课版) 课件 项目八安全的应用发布_第3页
Web安全与防护 (微课版) 课件 项目八安全的应用发布_第4页
Web安全与防护 (微课版) 课件 项目八安全的应用发布_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目八安全的应用发布Web安全与防护本任务要点学习目标生产环境搭建熟悉LAMP环境的快速搭建方法。熟悉部署博客管理系统的方法。能够快速搭建LAMP环境。能够进行博客管理系统的部署。任务一生产环境搭建目录CONTENTS01/LAMP环境的快速搭建02/部署博客管理系统LAMP环境的快速搭建01LAMP是指Linux(操作系统)+Apache(HTTP服务器)+MySQL(数据库)和PHP(网络编程语言),一般用来建立web应用平台。和Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点;与微软的.NET架构相比,LAMP具有通用、跨平台、高性能、低价格的优势。因此LAMP无论是性能、质量还是价格都是企业搭建网站的首选平台。中文官网下载系统镜像:/downloadLAMP环境的快速搭建01由于我们希望将博客管理系统部署在生产环境服务器中,因此在下载页面,我们选择服务器版:中文官网下载系统镜像:/download注:若您的服务器非X86架构,那么可以在下载页面选择其他架构的镜像进行下载LAMP环境的快速搭建01下载好Ubuntu服务器版的镜像后,我们需要准备一个U盘来制作启动盘(注意!制作启动盘将格式化U盘,在此之前请妥善处理U盘中的数据),另外我们还需要一个制作系统启动U盘的工具——Ventoy。访问Ventoy官网:/cn/index.htmlLAMP环境的快速搭建01选择下载栏目,在页面中选择对应平台的安装包,这里我们选择windows平台的安装包进行下载:访问Ventoy官网:/cn/index.htmlLAMP环境的快速搭建01将压缩包解压后,直接执行Ventoy2Disk.exe,如下图所示,选择对应的移动介质,再点击安装按钮即可:访问Ventoy官网:/cn/index.htmlLAMP环境的快速搭建01将已制作好的启动U盘插入到服务器上的USB接口,根据主板厂商的不同,按照对应的方法选择U盘引导启动(具体方法请参考对应型号主板的参考资料,在此不进行详细描述),在引导界面选择“ubuntu-20.04.4-live-server-amd64.iso”,接着选择“normalmode”,接下来我们将进入到Ubuntu的安装界面:LAMP环境的快速搭建01选择键盘布局,英文键盘对许多用户来说都具有更强的普适性。LAMP环境的快速搭建01Ubuntu安装程序现在显示它已在服务器上检测到哪个网卡。自动分配的网络设备名称为ens33。已通过DHCP自动分配了IPv4地址。安装基本系统后,我将在以后将其更改为固定IP地址。如果你的网络没有DHCP服务器,那么你现在可以通过选择网卡来输入固定的IP地址。LAMP环境的快速搭建01现在,你可以设置代理服务器地址,以访问互联网需要代理。如果你不需要代理,选择“完成”进入下一步安装在这里,你可以选择从中下载Ubuntu镜像服务器更新和安装文件。国外镜像源国内访问较慢,可以设置为/ubuntu/,也就是阿里云的镜像源。LAMP环境的快速搭建01Ubuntu服务器安装程序现在显示在服务器中检测到的硬分叉。安装磁盘在/dev/sda上为40GBHD。我将选择使用整个磁盘进行Ubuntu安装。如果你需要由多个分区组成的自定义布局,请选择“自定义布局”,然后根据需要创建分区。LAMP环境的快速搭建01安装程序将在下面显示默认存储配置。它包含一个1MB的bios_grub分区以及一个包含操作系统安装的大分区。选择“完成”进入下一个屏幕。LAMP环境的快速搭建01接着设置用户密码等,需要注意,为了使操作系统的安全性得到保障,我们应该尽量设置复杂不易猜解的密码。LAMP环境的快速搭建01作为Linux服务器,我们在完成服务器的部署后,将不会长期通过显示器、键盘、鼠标接入服务器进行使用,更多的操作是使用SSH通过网络进行管理。在此步骤中,Ubuntu安装程序可以直接安装SSH服务器。选中“安装OpenSSH服务器”复选框,然后继续下一步。LAMP环境的快速搭建01在此步骤中,你可以通过Snap安装程序预安装常用服务。我这里没有选择任何服务,因为没有我们需要的LAMP中的组件。我们可以在安装完成后通过apt或snap安装所需的服务LAMP环境的快速搭建01Ubuntu安装成功完成。选择“重新启动”将服务器启动到全新安装的UbuntuServer20.04系统中。LAMP环境的快速搭建01进入系统,输入安装时设置的账号密码,即可进入终端界面:LAMP环境的快速搭建01安装Apache服务器Ubuntu默认使用APT包管理工具进行软件的下载自动安装,进入服务器终端后,我们使用APT下载Apache服务器软件,执行:sudoapt-getinstallapache2我们可以通过执行:apache2-V,来确认Apache是否安装成功,如下输出Apache的版本信息等内容即表示安装成功设置Apache服务器开机自启,执行:sudosystemctlenableapache2LAMP环境的快速搭建01到此,安装Apache的工作已经结束,我们执行:sudoserviceapache2start,开启Apache服务,通过一台客户端主机打开浏览器,访问服务器IP地址的80端口来确认Apache服务的工作状态。LAMP环境的快速搭建01安装PHP环境在终端中执行:sudoapt-getinstallphp通过执行:php-v,来确认PHP的安装情况LAMP环境的快速搭建01安装MySQL数据库在终端中执行:sudoapt-getinstallmysql-server通过执行:php-v,来确认PHP的安装情况执行:sudosystemctlenablemySQL,使MySQL数据库开机自启。当前版本的MySQL默认通过Linux的root用户可以直接本地免密登录,因此我们要进入数据库需要执行:sudomySQL来进入数据库:部署博客管理系统02上传源码WindTerm官网下载链接:https://kingtoolbox.github.io/download/WindTerm不仅开源免费,还支持多平台(Windows、Linux、macOS),其性能更是优于同类型的其他软件,更快地速度和更低的占用也是本书推荐的重要原因部署博客管理系统02上传源码连接至将WindTerm左侧的“文件管理器”切换路径到Apache的网站根目录/home/ubuntu下,再将开发完成的博客管理系统的源代码文件夹拖动到“文件管理器”中。上传成功后,将目录移动到网站根目录下:sudomv~/blog/var/www/html/部署博客管理系统02创建数据库博客管理系统的安装指南,接下来我只需要按照安装指南进行配置即可;首先打开MySQL数据库新建一个库,我们取名为blog。将网站根目录下backup目录下的数据库文件导入blog库中。部署博客管理系统02创建数据库进入MySQL中新建一个低权限的数据库用户,专供网站业务使用。(注意设置复杂密码,并且只允许本地登录)。修改inc目录下的config.inc.php网站配置文件,根据代码中的注释填写数据库连接信息。部署博客管理系统02访问网站,成功访问到博客管理系统至此,博客管理系统的部署的工作就全部完成了。课堂实践一、任务名称:搭建生产环境二、任务内容:搭建博客系统的生产环境,包括Ubuntu操作系统、Apache服务器、MySQL数据库、PHP开发环境三、工具需求:浏览器、Vmware、Ubuntu、Apache、Ventoy、MySQL、PHP四、任务要求:完成实践练习后,由老师检查完成情况。课堂思考一、主流的Linux系统有哪些发行版?二、业界常用的WEB中间件有哪些?三、有哪些我国自主研发的国产数据库系统?四、WEB中间件的工作原理是什么?课后拓展:国产操作系统请同学们通过互联网检索国产操作系统的相关资料,了解并体验相关操作系统,提交word文档或PPT,下节课会抽点部分同学上来给大家分享一下自己了解到的国产操作系统的案例。THANK

YOUToBeContinued项目八

安全的应用发布Web安全与防护本任务要点学习目标配置Apache的安全配置项以满足安全需求。熟悉Apache禁止目录浏览的配置方法。熟悉Apache隐藏服务器banner信息的配置方法。熟悉Apache配置网站脚本解析规则的配置方法。熟悉Apache配置自定义错误页面的配置方法。任务二Apache安全配置目录CONTENTS01/禁止目录浏览02/隐藏服务器banner信息03/配置网站脚本解析规则04/自定义错误页面禁止目录浏览01默认情况下,Apache服务器在网站路径下没有默认索引文件(index.html或inedx.php)时,会将网站的目录结构直接返回给浏览器,访问者可以直接观看到网站的目录结构对于Apache的目录遍历这个问题,我们可以通过修改Apache的配置文件来进行加固,Ubuntu中Apache的配置文件路径位于:/etc/apache2/apache2.conf,我们可以定位到配置文件中的如下位置禁止目录浏览01其中OptionsIndexesFollowSymLinks,修改为Options–Indexes+FollowSymLinks,然后执行:sudoserviceapache2restart,重启Apache,再次使用浏览器访问目录,服务器响应403,显示没有权限隐藏服务器banner信息02当我们在访问Apache服务器时,默认情况下,在HTTP的响应报文中,我们能从响应报文的头部发现一个叫Server的字段中带有详细的服务器种类及版本信息,通过F12查看在服务器响应404/403等响应码时的浏览器页面也会显示具体的服务器软件的版本信息隐藏服务器banner信息02对该安全风险进行加固,首先打开Apache的安全配置文件:/etc/apache2/conf-enabled/security.conf,修改其中的两行配置为ServerTokensProdServerSignatureoff接着重启Apache,在通过浏览器访问网站,查看响应,提示所请求资源不存在配置网站脚本解析规则03Apache中规定会把哪些文件当做PHP脚本进行解析的配置文件位于:/etc/apache2/mods-enabled/php7.4.conf重点关注如下片段:<FilesMatch“.+\.ph(ar|p|tml)$”> SetHandlerapplication/x-httpd-php</FilesMatch>配置网站脚本解析规则03上述配置项通过正则表达式规定了,以.phar、.php、.phtml三种后缀结尾的文件都会被当作php脚本进行解析!而在这之中,我们大多数人只会用到php为了进行测试,我们在网站根目录下创建一个名为test.phtml的文件,内容为:<?phpphpinfo();使用浏览器访问该文件,发现我们创建的文件被正常解析了配置网站脚本解析规则03规避这项安全风险,将解析规则部分修改为:<FilesMatch“.+\.php$”> SetHandlerapplication/x-httpd-php</FilesMatch>重启Apache后,我们再次使用浏览器访问test.phtml文件可以发现phtml文件已经无法正常解析了,那么这样修改之后,Apache将只会把php文件当做脚本解析了。自定义错误页面04在用户访问网站出错、找不到页面时,会出现HTTP404,403错误信息,为了提高用户体验,我们需要自定义404、403错误页面Ubuntu中需要在/etc/apache2/conf-enabled/localized-errors.conf这个配置文件中配置自定义错误页面,首先我们先在网站根目录下创建一个error_page的目录用来存放我们的自定义错误页面推荐大家使用/alexphelps/server-errors,这个项目提供了一套美观简洁易于使用的专业错误页面自定义错误页面04保存配置文件后,重启Apache,再使用浏览器访问,确认配置之后的效果至此,自定义错误页面已经配置完成,错误页面都会以统一的模板展示给浏览者。课堂实践一、任务名称:Apache安全配置二、任务内容:对已搭建的生产环境中的Apache进行安全配置三、工具需求:浏览器、Vmware、Apache四、任务要求:完成实践练习后,由老师检查完成情况。课堂思考一、Apache作为WEB中间件有哪些优势?二、除Apache之外还有哪些应用广泛的替代品?三、Apache配置不当可能会造成哪些危害?课后拓展:Apache的历史漏洞请同学们通过互联网查找Apache的历史漏洞,了解其出现的原因和危害,提交word文档或PPT,下节课会抽点部分同学上来给大家分享一下自己了解到的Apache的历史漏洞。THANK

YOUToBeContinued项目八安全的应用发布Web安全与防护本任务要点学习目标配置PHP的安全配置项以满足安全需求熟悉关闭调试模式的配置方法。熟悉PHP各项安全参数的配置方法。能够配置关闭调试模式。能够配置PHP各项安全参数。任务三PHP安全配置目录CONTENTS01/关闭调试模式02/配置PHP参数关闭调试模式01在开发博客管理系统时,我们使用的开发环境中默认打开了PHP的调试模式,也就是说当PHP脚本出现告警或报错时,将会直接将错误信息显示在浏览器页面上,其中会包含网站的绝对路径、报错的脚本文件、出错的代码行数以及错误提示。通过浏览器访问test.php脚本文件时,页面中会显示报错信息关闭调试模式01在Ubuntu服务器中调试模式需要在PHP的配置文件中进行配置,配置文件的路径位于/etc/php/7.4/apache2/php.ini关闭调试模式01若你的生产环境中该配置项为ON,那么只需要将ON改成OFF即可,再重启Apache即可生效,再次访问浏览器将不会再返回报错信息,若在8.2.4节中配置了自定义错误页面,此时将会显示500响应的错误页面配置PHP参数02这个章节的目的是为了帮助那些配置PHP和运行它的web服务器的人确保它的安全性,下面你将找到有关php.ini文件的正确配置信息PHP错误处理:expose_php=Offerror_reporting=E_ALLdisplay_errors=Offdisplay_startup_errors=Offlog_errors=Onerror_log=/valid_path/PHP-logs/php_error.logignore_repeated_errors=Off配置PHP参数02PHP通用设置:doc_root=/path/DocumentRoot/PHP-scripts/open_basedir=/path/DocumentRoot/PHP-scripts/include_path=/path/PHP-pear/extension_dir=/path/PHP-extensions/mime_magic.magicfile=/path/PHP-magic.mimeallow_url_fopen=Offallow_url_include=Offvariables_order="GPCS"allow_webdav_methods=Offsession.gc_maxlifetime=600配置PHP参数02PHP上传文件处理:file_uploads=Onupload_tmp_dir=/path/PHP-uploads/upload_max_filesize=2Mmax_file_uploads=2配置PHP参数02PHP上传文件处理:file_uploads=Onupload_tmp_dir=/path/PHP-uploads/upload_max_filesize=2Mmax_file_uploads=2配置PHP参数02PHP可执行处理:enable_dl=Offdisable_functions=system,exec,shell_exec,passthru,phpinfo,show_source,highlight_file,popen,proc_open,fopen_with_path,dbmopen,dbase_open,putenv,move_uploaded_file,chdir,mkdir,rmdir,chmod,rename,filepro,filepro_rowcount,filepro_retrieve,posix_mkfifo#请查看:/features.safe-modedisable_classes=配置PHP参数02PHPsession处理:session.save_path=/path/PHP-session/=myPHPSESSIDsession.auto_start=Offsession.use_trans_sid=0session.cookie_domain=#session.cookie_path=/application/path/session.use_strict_mode=1session.use_cookies=1session.use_only_cookies=1session.cookie_lifetime=14400#4小时

session.cookie_secure=1session.cookie_httponly=1session.cookie_samesite=Strictsession.cache_expire=30session.sid_length=256session.sid_bits_per_character=6#PHP7.2+session.hash_function=1#PHP7.0-7.1session.hash_bits_per_character=6#PHP7.0-7.1配置PHP参数02在PHP的配置中,更多的安全隐患的检查也是必要的,如下:session.referer_check=/application/pathmemory_limit=50Mpost_max_size=20Mmax_execution_time=60report_memleaks=Ontrack_errors=Offhtml_errors=Off课堂实践一、任务名称:PHP安全配置二、任务内容:对已搭建的生产环境中的PHP开发环境进行安全配置三、工具需求:浏览器、Vmware、PHP四、任务要求:完成实践练习后,由老师检查完成情况。课堂思考一、PHP开发语言主要应用于哪些场景?二、除PHP外还有哪些主流的WEB脚本开发语言?三、PHP配置不当可能会导致哪些危害?课后拓展:开发框架请同学们通过互联网查找PHP语言流行的开发框架,了解目前MVC开发框架的原理,提交word文档或PPT,下节课会抽点部分同学上来给大家分享一下自己了解到的PHP开发框架。THANK

YOUToBeContinued项目八安全的应用发布Web安全与防护本任务要点学习目标配置MySQL的安全配置项以满足安全需求。熟悉MySQL各项安全参数的配置方法。熟悉MySQL数据库用户降权的配置方法。熟悉MySQL数据库访问控制的配置方法。任务四MySQL安全配置目录CONTENTS01/配置MySQL参数02/数据库用户降权03/数据库访问控制配置MySQL参数01禁止MySQL以管理员帐号权限运行:以普通账户安全运行MySQL,禁止以管理员账号权限运行MySQL服务。在/etc/f配置文件中进行以下设置。在前面搭建环境的环节中,Ubuntu通过APT安装的MySQL服务器默认满足该项配置。[mysql.server]User=mysql配置MySQL参数01最大连接数设置:根据您的机器性能和业务需求,设置最大、最小连接数。在MySQL配置文件(my.conf或my.ini)的[mysqld]配置段中添加max_connections=1000,保存配置文件,重启MySQL服务后即可生效。secure_file_priv:secure_file_priv限制客户端可以读取数据文件的路径,secure_file_priv设置合理的值可以有效降低SQL注入后黑客读取数据库数据的可能性。检查参数状态执行命令如下:SHOWGLOBALVARIABLESWHEREVariable_name='secure_file_priv'ANDValue<'';如果有返回内容说明安全,否则需要修复;配置MySQL参数01disconnect_on_expired_password:disconnect_on_expired_password是用来控制客户端用失效密码来访问数据库的,关闭这个参数会给数据库带来安全风险。检查参数状态执行命令如下:SHOWGLOBALVARIABLESLIKE'disconnect_on_expired_password’;错误日志记录:启用错误日志有可能会增加检测到针

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论