杀毒软件 防火墙 PHPIDS打造php网站服务器三位一体宙斯盾安防
|
张智翔 |
杀毒软件防火墙 PHPIDS打造php网站服务器三位一体宙斯盾安防 只要要发布信息到外网,就不可避免的碰到入侵与嗅探,环眼扫去,安全事故层出不穷,尤其php在web服务器这一块的巨大市场,如何打造安全体系呢?杀毒软件、防火墙、PHPIDS是我选择的铁三角,打造php网站服务器三位一体宙斯盾安防体系,选择元老级的防病毒软件(Antivirus)与防火墙(Firewall)防护主机外,其他还有入侵检测系统(IDS)、诱捕入侵检测系统(Honeypot)、使用分析系统、log文件分析系统等方式,以抵御或侦测各种可能的信息安全事件(如病毒、木马程序、DOS攻击);而目前最常使用的侦测防御系统非IDS莫属。 首先装上杀毒软件:360 金山趋势 麦咖啡 其次装上防火墙:第三方防火墙 深信服 绿盟 等其它检测工具 最后 装上IDS吧。 IDS为一种对网络流量进行实时检测的系统,当发现可疑的传输(例如:DOS攻击),IDS会立即发出警报或主动防御;但由于近几年的攻击型态已经慢慢转变在应用层上发生,如XSS与SQL Injection等Web端的攻击手法,传统的IDS已无法有效侦测。 『PHPIDS』是一套供 PHP开发环境使用的入侵检测系统,它是利用事先定义的规则文件,逐项比对用户的输入数据,来达到预防入侵的效果。以下笔者将说明安装方式与试用的结果。 请至「PHPIDS下载页面」 下载: PHPIDS 0.7 (ZIP)MD5SHA1 PHPIDS 0.6.5 (ZIP)MD5SHA1 PHPIDS 0.6.4 (ZIP)MD5SHA1
下载最新版本),解压缩之后共有三个文件夹:docs、lib、tests。其中, 「lib」文件夹存放其核心的程序代码,包括自定义规则文件与log暂存盘; 「docs」文件夹则存放说明文件,其中也包括范例档案。使用方法只要将lib文件夹复制到网页服务器的目录底下, 再将「docs/examples」内的example.php档案放在与lib文件夹同一个目录下,用户即可对example.php更改文件名。接着,请开启example.php找到如下程序代码: set_include_path( 将第四行的程序代码改成与lib文件夹相对的位置(因为笔者是将lib与example.php放置在同个目录之下,所以将其设成'lib/'),最后只要将网站内的所有php的档案引用example.php,即可使用本监控平台。例如在index.php这个档案的第一行加入: include("example.php"); 以下笔者利用XSS与SQL Injection两种不同的攻击型态来对PHPIDS监控平台进行实验。 XSS是黑客利用网站上允许用户输入字符或字符串的字段插入HTML与Script语言,以达成其他正常使用者在观看网页的同时,浏览器会主动下载并执行部份恶意的程序代码,或被暗地里导入到恶意的网站,而受到某种型态的影响; SQL Injection所攻击的目标并不是利用数据库本身的问题,也不是针对操作系统或是网站的漏洞,而是利用验证设计上的疏失进行攻击。 在程序设计师撰写Web应用程序时,如果没有对使用者的输入做妥善的过滤与处理,那么,程序便将用户输入的内容组合成查询的指令,传送给数据库server执行;若用户输入之数据中含有某些对数据库系统有特殊意义的符号或命令时,便可能让使用者有机会对数据库系统下达指令,因而造成入侵行为。与XSS相同的是,使用者都是利用Web的输入字段来执行;不同的是,SQL Injection会造成数据库的损失或者遭窃取数据。 index.php? 在网页内则会出现如【图1】侦测结果;若攻击型态变更成SQL Injection,则会出现如【图2】的结果。
首先,系统会自动统计受到影响的规则条件共有多少个;其次,是列出侦测出哪些类别的攻击型态(如xss表示侦测出Cross Site Scripting攻击、csrf表示侦测出Cross-site request forgery、sqli表示侦测出SQL指令等),最后是条列式细部的侦测结果。另外,当系统侦测出具有攻击性语言的字符串时,会自动储存至lib/IDS/tmp的phpids_log.txt纪录,以方便系统管理者进行监控。 PHPIDS之规则文件放置于「/lib/IDS/default_filter.xml」,如【图3】所示其中之一的规则,利用正规表示式(Regular Expression)描述,并将所有描述存成XML文件格式;官方网站会不定时地更新规则文件,可有效防御新一波的Web攻击。另一方面,如果不想使用 PHPIDS,此处所提供的规则,也许可供开发人员的过滤程序参考。 结语与最优方案 PHPIDS提供一个免费的程序代码,供Web开发人员参考,并可有效地杜绝Web的攻击手法,同时也提供实时监控的平台,供网站管理者查阅是否受到黑客攻击。但目前最大的缺点在于,网站下所有的php程序文件都需要加入example.php,才能将攻击隔绝于外,且每个程序文件加入之后是否会对网站效能有所影响,也是开发人员必须考虑的,有兴趣的读者,不妨下载安装藉以加强Web的安全性。
最优方案 网站有几百个php文件,我不可能都一一 include吧,那怎么办呢? 继续往下看—— |
安装步骤:
1、下载phpids,我测试用的是版本7.
http://www.open-open.com/news/view/cc55a2
2、解压phpids至网站根目录
3、如果无法解压至根目录可使用mod_rewrite
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/phpids(.*)
RewriteRule ^(.+)$ - [F]
配置使用:
1、编辑config/config.ini.php自定义配置。 无非是设置邮箱,发送邮箱,很简单。
2、 ; die();?>
3、
4、 ; PHPIDS Config.ini
5、
6、 ; General configuration settings
7、
8、
9、 [General]
10、
11、 ; basic settings - customize to make the PHPIDS work at all
12、 filter_type = xml
13、
14、 ;base_path = /full/path/to/IDS/
15、 use_base_path = false
16、
17、 filter_path = default_filter.xml
18、 tmp_path = tmp
19、 scan_keys = false
20、
21、 ; in case you want to use a different HTMLPurifier source, specify it here
22、 ; By default, those files are used that are being shipped with PHPIDS
23、 HTML_Purifier_Path = vendors/htmlpurifier/HTMLPurifier.auto.php
24、 HTML_Purifier_Cache = vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer
25、
26、 ; define which fields contain html and need preparation before
27、 ; hitting the PHPIDS rules (new in PHPIDS 0.5)
28、 ;html[] = POST.__wysiwyg
29、
30、 ; define which fields contain JSON data and should be treated as such
31、 ; for fewer false positives (new in PHPIDS 0.5.3)
32、 ;json[] = POST.__jsondata
33、
34、 ; define which fields shouldn't be monitored (a[b]=c should be referenced via a.b)
35、 exceptions[] = GET.__utmz
36、 exceptions[] = GET.__utmc
37、
38、 ; you can use regular expressions for wildcard exceptions - example: /.*foo/i
39、
40、 ; PHPIDS should run with PHP 5.1.2 but this is untested - set
41、 ; this value to force compatibilty with minor versions
42、 min_php_version = 5.1.6
43、
44、 ; If you use the PHPIDS logger you can define specific configuration here
45、
46、 [Logging]
47、
48、 ; file logging
49、 path = tmp/phpids_log.txt
50、
51、 ; email logging
52、
53、 ; note that enabling safemode you can prevent spam attempts,
54、 ; see documentation
55、 recipients[] = [email protected]
56、 subject = "PHPIDS detected an intrusion attempt!"
57、 header = "From:
58、 envelope = ""
59、 safemode = true
60、 urlencode = true
61、 allowed_rate = 15
62、
63、 ; database logging
64、
65、 wrapper = "mysql:host=localhost;port=3306;dbname=phpids"
66、 user = phpids_user
67、 password = 123456
68、 table = intrusions
69、
70、 ; If you would like to use other methods than file caching you can configure them here
71、
72、 [Caching]
73、
74、 ; caching: session|file|database|memcached|none
75、 caching = file
76、 expiration_time = 600
77、
78、 ; file cache
79、 path = tmp/default_filter.cache
80、
81、 ; database cache
82、 wrapper = "mysql:host=localhost;port=3306;dbname=phpids"
83、 user = phpids_user
84、 password = 123456
85、 table = cache
86、
87、 ; memcached
88、 ;host = localhost
89、 ;port = 11211
90、 ;key_prefix = PHPIDS
91、 复制到lib目录下,更名为ids.php
92、
93、
94、 /** 张迅雷原创,欢迎加qq—— 158393237 讨论
95、 *PHPIDS
96、 *Requirements:PHP5,SimpleXML
97、 *
98、 *Copyright(c)2010PHPIDSgroup(https://phpids.org)
99、 *
100、 *Thisprogramisfreesoftware;youcanredistributeitand/ormodify
101、 *itunderthetermsoftheGNUGeneralPublicLicenseaspublishedby
102、 *theFreeSoftwareFoundation;version2ofthelicense.
103、 *
104、 *Thisprogramisdistributedinthehopethatitwillbeuseful,
105、 *butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof
106、 *MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE. Seethe
107、 *GNUGeneralPublicLicenseformoredetails.
108、 */
109、
110、 // set the include path properly for PHPIDS
111、 set_include_path(
112、 get_include_path()
113、 . PATH_SEPARATOR
114、 . 'lib/'
115、 );
116、
117、 if (!session_id()) {
118、 session_start();
119、 }
120、
121、 require_once'IDS/Init.php';
122、
123、 try {
124、
125、 /*
126、 * It's pretty easy to get the PHPIDS running
127、 * 1. Define what to scan
128、 *
129、 * Please keep in mind what array_merge does and how this might interfer
130、 * with your variables_order settings
131、 */
132、 $request =array(
133、 'REQUEST' =>$_REQUEST,
134、 'GET' =>$_GET,
135、 'POST' =>$_POST,
136、 'COOKIE' =>$_COOKIE
137、 );
138、
139、 $init = IDS_Init::init(dirname(__FILE__) . '/IDS/Config/Config.ini.php');
140、
141、 /**
142、 *Youcanalsoresetthewholeconfiguration
143、 *arrayormergeinowndata
144、 *
145、 *Thisusagedoesn'toverwritealreadyexistingvalues
146、 *$config->setConfig(array('General'=>array('filter_type'=>'xml')));
147、 *
148、 *Thisdoes(see2ndparameter)
149、 *$config->setConfig(array('General'=>array('filter_type'=>'xml')),true);
150、 *
151、 *oryoucanaccesstheconfigdirectlylikehere:
152、 */
153、
154、 $init->config['General']['base_path'] = dirname(__FILE__) .'/IDS/';
155、 $init->config['General']['use_base_path'] = true;
156、 $init->config['Caching']['caching'] = 'none';
157、
158、 // 2. Initiate the PHPIDS and fetch the results
159、 $ids =new IDS_Monitor($request,$init);
160、 $result =$ids->run();
161、
162、 /*
163、 * That's it - now you can analyze the results:
164、 *
165、 * In the result object you will find any suspicious
166、 * fields of the passed array enriched with additional info
167、 *
168、 * Note: it is moreover possible to dump this information by
169、 * simply echoing the result object, since IDS_Report implemented
170、 * a __toString method.
171、 */
172、 if (!$result->isEmpty()) {
173、 echo$result;
174、
175、 /*
176、 * The following steps are optional to log the results
177、 */
178、 require_once'IDS/Log/File.php';
179、 require_once'IDS/Log/Composite.php';
180、
181、 $compositeLog =new IDS_Log_Composite();
182、 $compositeLog->addLogger(IDS_Log_File::getInstance($init));
183、
184、 /*
185、 * Note that you might also use different logging facilities
186、 * such as IDS_Log_Email or IDS_Log_Database
187、 *
188、 * Just uncomment the following lines to test the wrappers
189、 */
190、 /*
191、 *
192、 require_once 'IDS/Log/Email.php';
193、 require_once 'IDS/Log/Database.php';
194、
195、 $compositeLog->addLogger(
196、 IDS_Log_Email::getInstance($init),
197、 IDS_Log_Database::getInstance($init)
198、 );
199、 */
200、 $compositeLog->execute($result);
201、
202、
203、 } else {
204、 echo'No attack detected - click for an example attack';
205、 }
206、 } catch (Exception$e) {
207、 /*
208、 * sth went terribly wrong - maybe the
209、 * filter rules weren't found?
210、 */
211、 printf(
212、 'An error occured: %s',
213、 $e->getMessage()
214、 );
215、 }
2、编辑php.ini,加入以下内容:
auto_prepend_file=”D:\MYOA\webroot\phpids\lib\ids.php”

“你的组织要求你更改PIN消息”将显示在登录屏幕上。当在使用基于组织的帐户设置的电脑上达到PIN过期限制时,就会发生这种情况,在该电脑上,他们可以控制个人设备。但是,如果您使用个人帐户设置了Windows,则理想情况下不应显示错误消息。虽然情况并非总是如此。大多数遇到错误的用户使用个人帐户报告。为什么我的组织要求我在Windows11上更改我的PIN?可能是您的帐户与组织相关联,您的主要方法应该是验证这一点。联系域管理员会有所帮助!此外,配置错误的本地策略设置或不正确的注册表项也可能导致错误。即

Windows11将清新优雅的设计带到了最前沿;现代界面允许您个性化和更改最精细的细节,例如窗口边框。在本指南中,我们将讨论分步说明,以帮助您在Windows操作系统中创建反映您的风格的环境。如何更改窗口边框设置?按+打开“设置”应用。WindowsI转到个性化,然后单击颜色设置。颜色更改窗口边框设置窗口11“宽度=”643“高度=”500“>找到在标题栏和窗口边框上显示强调色选项,然后切换它旁边的开关。若要在“开始”菜单和任务栏上显示主题色,请打开“在开始”菜单和任务栏上显示主题

默认情况下,Windows11上的标题栏颜色取决于您选择的深色/浅色主题。但是,您可以将其更改为所需的任何颜色。在本指南中,我们将讨论三种方法的分步说明,以更改它并个性化您的桌面体验,使其具有视觉吸引力。是否可以更改活动和非活动窗口的标题栏颜色?是的,您可以使用“设置”应用更改活动窗口的标题栏颜色,也可以使用注册表编辑器更改非活动窗口的标题栏颜色。若要了解这些步骤,请转到下一部分。如何在Windows11中更改标题栏的颜色?1.使用“设置”应用按+打开设置窗口。WindowsI前往“个性化”,然

您是否在Windows安装程序页面上看到“出现问题”以及“OOBELANGUAGE”语句?Windows的安装有时会因此类错误而停止。OOBE表示开箱即用的体验。正如错误提示所表示的那样,这是与OOBE语言选择相关的问题。没有什么可担心的,你可以通过OOBE屏幕本身的漂亮注册表编辑来解决这个问题。快速修复–1.单击OOBE应用底部的“重试”按钮。这将继续进行该过程,而不会再打嗝。2.使用电源按钮强制关闭系统。系统重新启动后,OOBE应继续。3.断开系统与互联网的连接。在脱机模式下完成OOBE的所

任务栏缩略图可能很有趣,但它们也可能分散注意力或烦人。考虑到您将鼠标悬停在该区域的频率,您可能无意中关闭了重要窗口几次。另一个缺点是它使用更多的系统资源,因此,如果您一直在寻找一种提高资源效率的方法,我们将向您展示如何禁用它。不过,如果您的硬件规格可以处理它并且您喜欢预览版,则可以启用它。如何在Windows11中启用任务栏缩略图预览?1.使用“设置”应用点击键并单击设置。Windows单击系统,然后选择关于。点击高级系统设置。导航到“高级”选项卡,然后选择“性能”下的“设置”。在“视觉效果”选

在Windows11上的显示缩放方面,我们都有不同的偏好。有些人喜欢大图标,有些人喜欢小图标。但是,我们都同意拥有正确的缩放比例很重要。字体缩放不良或图像过度缩放可能是工作时真正的生产力杀手,因此您需要知道如何对其进行自定义以充分利用系统功能。自定义缩放的优点:对于难以阅读屏幕上的文本的人来说,这是一个有用的功能。它可以帮助您一次在屏幕上查看更多内容。您可以创建仅适用于某些监视器和应用程序的自定义扩展配置文件。可以帮助提高低端硬件的性能。它使您可以更好地控制屏幕上的内容。如何在Windows11

屏幕亮度是使用现代计算设备不可或缺的一部分,尤其是当您长时间注视屏幕时。它可以帮助您减轻眼睛疲劳,提高易读性,并轻松有效地查看内容。但是,根据您的设置,有时很难管理亮度,尤其是在具有新UI更改的Windows11上。如果您在调整亮度时遇到问题,以下是在Windows11上管理亮度的所有方法。如何在Windows11上更改亮度[10种方式解释]单显示器用户可以使用以下方法在Windows11上调整亮度。这包括使用单个显示器的台式机系统以及笔记本电脑。让我们开始吧。方法1:使用操作中心操作中心是访问

在iOS17中,Apple为其移动操作系统引入了几项新的隐私和安全功能,其中之一是能够要求对Safari中的隐私浏览选项卡进行二次身份验证。以下是它的工作原理以及如何将其关闭。在运行iOS17或iPadOS17的iPhone或iPad上,如果您在Safari浏览器中打开了任何“无痕浏览”标签页,然后退出会话或App,Apple的浏览器现在需要面容ID/触控ID认证或密码才能再次访问它们。换句话说,如果有人在解锁您的iPhone或iPad时拿到了它,他们仍然无法在不知道您的密码的情况下查看您的隐私


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Dreamweaver CS6
视觉化网页开发工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境