php容易被攻击_php网站总是被攻击

hacker|
91

网站被phpddos攻击,怎么办???

建站一段时间后总能听得到什么什么网站被挂马,什么网站被黑。好像入侵挂马似乎是件很简单的事情。其实,入侵不简单,简单的是你的网站的必要安全措施并未做好。

有条件建议找专业做网站安全的sine安全来做安全维护。

一:挂马预防措施:

1、建议用户通过ftp来上传、维护网页,尽量不安装asp的上传程序。

2、定期对网站进行安全的检测,具体可以利用网上一些工具,如sinesafe网站挂马检测工具!

序,只要可以上传文件的asp都要进行身份认证!

3、asp程序管理员的用户名和密码要有一定复杂性,不能过于简单,还要注意定期更换。

4、到正规网站下载asp程序,下载后要对其数据库名称和存放路径进行修改,数据库文件名称也要有一定复杂性。

 

5、要尽量保持程序是最新版本。

6、不要在网页上加注后台管理程序登陆页面的链接。

7、为防止程序有未知漏洞,可以在维护后删除后台管理程序的登陆页面,下次维护时再通过ftp上传即可。

8、要时常备份数据库等重要文件。

9、日常要多维护,并注意空间中是否有来历不明的asp文件。记住:一分汗水,换一分安全!

10、一旦发现被入侵,除非自己能识别出所有木马文件,否则要删除所有文件。

11、对asp上传程序的调用一定要进行身份认证,并只允许信任的人使用上传程序。这其中包括各种新闻发布、商城及论坛程

二:挂马恢复措施:

1.修改帐号密码

不管是商业或不是,初始密码多半都是admin。因此你接到网站程序第一件事情就是“修改帐号密码”。帐号

密码就不要在使用以前你习惯的,换点特别的。尽量将字母数字及符号一起。此外密码最好超过15位。尚若你使用

SQL的话应该使用特别点的帐号密码,不要在使用什么什么admin之类,否则很容易被入侵。

2.创建一个robots.txt

Robots能够有效的防范利用搜索引擎窃取信息的骇客。

3.修改后台文件

第一步:修改后台里的验证文件的名称。

第二步:修改conn.asp,防止非法下载,也可对数据库加密后在修改conn.asp。

第三步:修改ACESS数据库名称,越复杂越好,可以的话将数据所在目录的换一下。

4.限制登陆后台IP

此方法是最有效的,每位虚拟主机用户应该都有个功能。你的IP不固定的话就麻烦点每次改一下咯,安全第一嘛。

5.自定义404页面及自定义传送ASP错误信息

404能够让骇客批量查找你的后台一些重要文件及检查网页是否存在注入漏洞。

ASP错误嘛,可能会向不明来意者传送对方想要的信息。

6.慎重选择网站程序

注意一下网站程序是否本身存在漏洞,好坏你我心里该有把秤。

7.谨慎上传漏洞

据悉,上传漏洞往往是最简单也是最严重的,能够让黑客或骇客们轻松控制你的网站。

可以禁止上传或着限制上传的文件类型。不懂的话可以找专业做网站安全的sinesafe公司。

8. cookie 保护

登陆时尽量不要去访问其他站点,以防止 cookie 泄密。切记退出时要点退出在关闭所有浏览器。

9.目录权限

请管理员设置好一些重要的目录权限,防止非正常的访问。如不要给上传目录执行脚本权限及不要给非上传目录给于写入权。

10.自我测试

如今在网上黑客工具一箩筐,不防找一些来测试下你的网站是否OK。

11.例行维护

a.定期备份数据。最好每日备份一次,下载了备份文件后应该及时删除主机上的备份文件。

b.定期更改数据库的名字及管理员帐密。

c.借WEB或FTP管理,查看所有目录体积,最后修改时间以及文件数,检查是文件是否有异常,以及查看是否有异常的账号。

网站被挂马一般都是网站程序存在漏洞或者服务器安全性能不达标被不法黑客入侵攻击而挂马的。

网站被挂马是普遍存在现象然而也是每一个网站运营者的心腹之患。

您是否因为网站和服务器天天被入侵挂马等问题也曾有过想放弃的想法呢,您否也因为不太了解网站技术的问题而耽误了网站的运营,您是否也因为精心运营的网站反反复复被一些无聊的黑客入侵挂马感到徬彷且很无耐。有条件建议找专业做网站安全的sine安全来做安全维护。

PHP如何做好最基础的安全防范

PHP如何做好最基础的安全防范

php给了开发者极大的灵活性,但是这也为安全问题带来了潜在的隐患,PHP如何做好最基础的安全防范呢?下面我为大家解答一下,希望能帮到您!

当开发一个互联网服务的时候,必须时刻牢记安全观念,并在开发的代码中体现。PHP脚本语言对安全问题并不关心,特别是对大多数没有经验的开发者来说。每当你讲任何涉及到钱财事务等交易问题时,需要特别注意安全问题的考虑,例如开发一个论坛或者是一个购物车等。

   安全保护一般性要点

不相信表单

对于一般的Javascript前台验证,由于无法得知用户的行为,例如关闭了浏览器的javascript引擎,这样通过POST恶意数据到服务器。需要在服务器端进行验证,对每个php脚本验证传递到的数据,防止XSS攻击和SQL注入。

不相信用户

要假设你的网站接收的每一条数据都是存在恶意代码的,存在隐藏的威胁,要对每一条数据都进行清理

   关闭全局变量

在php.ini文件中进行以下配置:

register_globals = Off

如果这个配置选项打开之后,会出现很大的安全隐患。例如有一个process.php的脚本文件,会将接收到的数据插入到数据库,接收用户输入数据的表单可能如下:

input name="username" type ="text" size = "15" maxlength = "64"

这样,当提交数据到process.php之后,php会注册一个$username变量,将这个变量数据提交到process.php,同时对于任何POST或GET请求参数,都会设置这样的变量。如果不是显示进行初始化那么就会出现下面的问题:

?php

// Define $authorized = true only if user is authenticated

if

(authenticated_user()) {

$authorized = true;

}

?

此处,假设authenticated_user函数就是判断$authorized变量的值,如果开启了register_globals配置,那么任何用户都可以发送一个请求,来设置$authorized变量的值为任意值从而就能绕过这个验证。所有的这些提交数据都应该通过PHP预定义内置的全局数组来获取,包括$_POST、$_GET、$_FILES、$_SERVER、$_REQUEST等,其中$_REQUEST是一个$_GET/$_POST/$_COOKIE三个数组的联合变量,默认的顺序是$_COOKIE、$_POST、$_GET。

推荐的安全配置选项

error_reporting设置为Off:不要暴露错误信息给用户,开发的时候可以设置为ON

safe_mode设置为Off

register_globals设置为Off

将以下函数禁用:system、exec、passthru、shell_exec、proc_open、popen

open_basedir设置为 /tmp ,这样可以让session信息有存储权限,同时设置单独的网站根目录expose_php设置为Offallow_url_fopen设置为Offallow_url_include设置为Off

SQL注入攻击

对于操作数据库的SQL语句,需要特别注意安全性,因为用户可能输入特定语句使得原有的SQL语句改变了功能。类似下面的例子:

$sql ="select * from pinfo where product = '$product'";

此时如果用户输入的$product参数为:'39'; DROP pinfo; SELECT 'FOO

那么最终SQL语句就变成了如下的`样子:

select product from pinfo where product = '39';

DROP pinfo;

SELECT 'FOO'

这样就会变成三条SQL语句,会造成pinfo表被删除,这样会造成严重的后果。这个问题可以简单的使用PHP的内置函数解决:

$sql = 'Select * from pinfo where product = '"' mysql_real_escape_string($product) . '"';

防止SQL注入攻击需要做好两件事:对输入的参数总是进行类型验证对单引号、双引号、反引号等特殊字符总是使用mysql_real_escape_string函数进行转义但是,这里根据开发经验,不要开启php的Magic Quotes,这个特性在php6中已经废除,总是自己在需要的时候进行转义。

防止基本的XSS攻击

XSS攻击不像其他攻击,这种攻击在客户端进行,最基本的XSS工具就是防止一段javascript脚本在用户待提交的表单页面,将用户提交的数据和cookie偷取过来。XSS工具比SQL注入更加难以防护,各大公司网站都被XSS攻击过,虽然这种攻击与php语言无关,但可以使用php来筛选用户数据达到保护用户数据的目的,这里主要使用的是对用户的数据进行过滤,一般过滤掉HTML标签,特别是a标签。下面是一个普通的过滤方法:

function transform_HTML( $string , $length null) { // Helps prevent XSS attacks

// Remove dead space.

$string = trim( $string );

// Prevent potential Unicode codec problems.

$string = utf8_decode( $string );

// HTMLize HTML-specific characters.

$string = htmlentities( $string , ENT_NOQUOTES);

$string = str_replace ( "#" , "#" , $string );

$string = str_replace ( "%" , "%" , $string );

$length = intval ( $length );

if ( $length 0) {

$string = substr ( $string , 0, $length );

}return $string ;

}

这个函数将HTML的特殊字符转换为了HTML实体,浏览器在渲染这段文本的时候以纯文本形式显示。如bold会被显示为: BoldText 上述函数的核心就是htmlentities函数,这个函数将html特殊标签转换为html实体字符,这样可以过滤大部分的XSS攻击。但是对于有经验的XSS攻击者,有更加巧妙的办法进行攻击:将他们的恶意代码使用十六进制或者utf-8编码,而不是普通的ASCII文本,例如可以使用下面的方式进行:

   这样浏览器渲染的结果其实是:

a href = ""

SCRIPT Dosomethingmalicious

这样就达到了攻击的目的。为了防止这种情况,需要在transform_HTML函数的基础上再将#和%转换为他们对应的实体符号,同时加上了$length参数来限制提交的数据的最大长度。

   使用SafeHTML防止XSS攻击

上述关于XSS攻击的防护非常简单,但是不包含用户的所有标记,同时有上百种绕过过滤函数提交javascript代码的方法,也没有办法能完全阻止这个情况。目前,没有一个单一的脚本能保证不被攻击突破,但是总有相对来说防护程度更好的。一共有两个安全防护的方式:白名单和黑名单。其中白名单更加简单和有效。一种白名单解决方案就是SafeHTML,它足够智能能够识别有效的HTML,然后就可以去除任何危险的标签。这个需要基于HTMLSax包来进行解析。安装使用SafeHTML的方法:

1、前往 下载最新的SafeHTML

2、将文件放入服务器的classes 目录,这个目录包含所有的SafeHTML和HTMLSax库

3、在自己的脚本中包含SafeHTML类文件

4、建立一个SafeHTML对象

5、使用parse方法进行过滤

?php/* If you're storing the HTMLSax3.php in the /classes directory, along

with the safehtml.php script, define XML_HTMLSAX3 as a null string. */define(XML_HTMLSAX3, '' );// Include the class file.require_once ( 'classes/safehtml.php' );

// Define some sample bad code.

$data = This data would raise an alert

" ;// Create a safehtml object.$safehtml = new safehtml();// Parse and sanitize the data.$safe_data = $safehtml -parse( $data );// Display result. echo 'The sanitized data is ' . $safe_data ;

?

SafeHTML并不能完全防止XSS攻击,只是一个相对复杂的脚本来检验的方式。

使用单向HASH加密方式来保护数据

单向hash加密保证对每个用户的密码都是唯一的,而且不能被破译的,只有最终用户知道密码,系统也是不知道原始密码的。这样的一个好处是在系统被攻击后攻击者也无法知道原始密码数据。加密和Hash是不同的两个过程。与加密不同,Hash是无法被解密的,是单向的;同时两个不同的字符串可能会得到同一个hash值,并不能保证hash值的唯一性。MD5函数处理过的hash值基本不能被破解,但是总是有可能性的,而且网上也有MD5的hash字典。

使用mcrypt加密数据MD5 hash函数可以在可读的表单中显示数据,但是对于存储用户的信用卡信息的时候,需要进行加密处理后存储,并且需要之后进行解密。最好的方法是使用mcrypt模块,这个模块包含了超过30中加密方式来保证只有加密者才能解密数据。

?php$data = "Stuff you want encrypted" ;

$key = "Secret passphrase used to encrypt your data" ;

$cipher = "MCRYPT_SERPENT_256" $mode = "MCRYPT_MODE_CBC" ;function encrypt( $data, $key , cipher , $mode ) {// Encrypt datareturn (string) base64_encode ( mcrypt_encrypt ( $cipher , substr (md5( $key ),0,mcrypt_get_key_size( $cipher , $mode )), $data , $mode , substr (md5( $key ),0,mcrypt_get_block_size( $cipher , $mode )) ) );

}function decrypt( $data , $key ,$cipher , $mode ) {// Decrypt data

return (string) mcrypt_decrypt ( $cipher , substr (md5( $key ),0,mcrypt_get_key_size( $cipher , $mode )), base64_decode ( $data ), $mode , substr (md5( $key ),0,mcrypt_get_block_size( $cipher , $mode )) );

}?

mcrypt函数需要以下信息:

1、待加密数据

2、用来加密和解密数据的key

3、用户选择的加密数据的特定算法(cipher:

如 MCRYPT_TWOFISH192

,MCRYPT_SERPENT_256, MCRYPT_RC2

, MCRYPT_DES

, and MCRYPT_LOKI97

4、用来加密的模式

5、加密的种子,用来起始加密过程的数据,是一个额外的二进制数据用来初始化加密算法

6、加密key和种子的长度,使用mcrypt_get_key_size函数和mcrypt_get_block_size函数可以获取如果数据和key都被盗取,那么攻击者可以遍历ciphers寻找开行的方式即可,因此我们需要将加密的key进行MD5一次后保证安全性。同时由于mcrypt函数返回的加密数据是一个二进制数据,这样保存到数据库字段中会引起其他错误,使用了base64encode将这些数据转换为了十六进制数方便保存。

;

网站时常被攻击,如何才能制止?

1找一个网站制作人来快速删除非法信息。通常有三个地方受到攻击。一是网站后台受到攻击,二是网站程序受到攻击,三是数据库被SQL篡改和注入。清除后,立即修复网站的登录路径后台,后台账号和密码(强密码,条件允许,手机短信动态验证码优先),修改FTP账号和密码,以及SQL账号和密码。我们非常不建议使用SQL用户名直接默认根。

2.如果域名不再使用,你可以取消在管局网站的注册。有时可能是因为你的网站已经过期,但注册访问是正常的,所以这部分域名很容易以高价注册。此时,直接注销以记录访问权限与您的公司无关。对方的网站不会打开。当然,如果对方的网站连接到海外服务器,情况就不是这样了。

3.通过域名注册提供商和注册提供商报告界面进行报告。注册业务审查后,分析将自动中断。为了实现关网的目标

4.搜索引擎收集的信息可以提交给搜索引擎进行投诉处理。此时,搜索引擎可能会提示安全风险。如果该网站需要启用,它可以清除非法信息并提交申请风险警告以恢复。

如何避免网站被攻击?

不管是中小型企业网站还是大型企业网站都会面临着被攻击的危险,如果没有一个专业的程序员维护,网站会经常性的出现很多问题,网页打开缓慢、延迟、打不开甚至死机,因此流失很多客户。不过面对网站攻击并不是束手无策而坐以待毙,网站被攻击恰恰说明网站存在安全漏洞,只要查缺补漏,加以防范,便可保持网站的正常运行。网站之所以存在漏洞,是因为电脑系统或网站程序不断被发觉新漏洞,不是很专业的程序员疏于防范,便给一些不法之徒带来可乘之机。为此,网站运维不是一个简单的事,需要程序员的专业技术、管理习惯、责任心息息相关。

网站被攻击的常见形式:

(一)网站网页被挂马:当我们打开网站网页时,会被浏览器或电脑安全管理软件提示,此网站存在风险、此网站被挂马等报告,是因为网页和根目录文件中被植入了js,当打开网页时,触发js的命令,自动执行含有木马的脚本或php文件,从而窃取用户的隐私数据。被攻击的网站往往是一些涉及虚拟货币或有交易性质的网站。

(二)网站网页中出现大量的黑链:网站的网页一般用户看着没有什么异常,但是在网站的源代码中,往往是在最底部,出现了大量的锚文本链接,而这些链接往往被隐藏起来,字体大小为0或极限便宜位置。被攻击的目的在于,一些黑客非法植入链接,来提高一些低权重网站的权重和流量而获取利益,而被攻击方的网站往往会被降权惩罚。被攻击的网站往往是一些存在一定搜索引擎权重和流量的网站。

(三)网站根目录中出现大量植入的网页:如果网站维护不及时,会发现网站收录突然暴增,而收录的内容都是非自身网站的内容,大多数是一些非法广告页面,诸如博彩、色情、游戏私服外挂等内容,我们检查服务器网站数据会发现大量植入的静态页。被攻击的网站广泛,特别是一些流量高的网站备受黑客青睐。

(四)网站网页打开自动跳转到其它网站页面:这种形式我们常常称之为非法桥页,在网页中植入的强制转的js,或入侵服务器,在iis中做了301重定向跳转,其目的在于黑客进行一些非法广告性或网站权重转移而从中获益。被攻击的对象往往是一些有权重、有流量的网站。

(五)网站数据库被植入新内容。网站数据被植入了一些新增加的内容,这些内容形式和网站其他数据看似正常,但是看时间日期,会发现内容往往比较集中,而并不是编辑人员添加的内容。这种网站往往是一些能够办理证件的网站,诸如职业资格证、毕业证等。黑客为一些非法客户在正规官网植入虚假职业信息,而从中获取高额利益。被攻击的网站往往是一些大学官网、教育部门网站或一些资质认定的网站。

(六)网站被攻击打不开会打开极为缓慢:网站网页经常打不开,或服务器无法远程连接,这种情况往往是由于企业竞争激烈,非法的竞争对手雇佣网络黑客,恶意攻击自己的网站程序和服务器,导致网站或服务器无法正常运行,诸如大量的DDoS攻击、CC攻击、直接破坏或删除网站数据。部分黑客存在心理扭曲、炫耀自己的能力进行恶意攻击。被攻击的网站往往是企业网站或一些维护水平较低存在大量安全漏洞的网站。

(七)网站和服务器密码被篡改:有时会发现网站和服务器的密码不正确,被篡改了。是因为黑客对存在漏洞的网站和服务器进行暴力破解,篡改了密码。其目的往往在于炫耀黑客技术能力,进行恶意的、非法的黑客技术操作。被攻击的网站为所有网站。

(八)网站数据库丢失或损坏:有时发现自己的网站可以正常打开,但是无法再继续更新程序和新添加内容。这种情况往往是一些缺乏职业道德的离职程序员或黑客,进行恶意的攻击网站。被攻击的网站为各类网站。

(九)网站域名DNS劫持:打开自己的网站,内容却不是自己的网站内容,检查服务器和网站程序均正常,这种情况我们ping网站ip到时候已经不是自己的服务器ip,这种情况往往存在域名DNS劫持。其目的在于恶意的攻击炫耀或广告利益。被攻击的网站为所有类网站。

(十)网站服务器运行缓慢,被植入蠕虫等病毒:有时候站长会发现网站运行更新或在服务器操作异常缓慢,我们查看服务器的进程管理会发现,有运行占据高CPU、高内存的进程。这是查杀木马,往往会查出蠕虫等病毒。其目的在于占据网站资源,或服务器自身被攻击入侵,作为一种“肉鸡”用来攻击其他人的平台。被攻击网站,往往是一些高性能、高带宽的服务器。

二、网站服务器如何运维:

(一)网站数据定期备份:定期备份网站数据可以用来恢复被攻击的网站,即便网站被攻击或误操作删除一些网站信息,可随时恢复。为此网站运维,网站备份才是硬道理。

(二)网站程序系统更新:网站程序和服务器系统定期更新使用的版本、补丁,可消除一些存在的安全漏洞,以防给黑客带来可趁之机。

(三)定期查杀网站病毒:定期查杀网站病毒可以防止黑客的进一步破话或窃取网站数据,也可以及时删除入侵的网站后门漏洞文件。

(四)网站文件权限设置:对网站服务器文件合理的设定权限,比如部分执行程序的重要文件应当取消写入或执行权限,可避免黑客篡改网站数据。

(五)网站域名开启https数据安全传输协议和cdn加速,开启https和cnd,可以更快的、安全的运行网站,可以隐藏自己的网站真实ip,一定程度上预防DDoS攻击、CC攻击、域名劫持等安全隐患。网站如何防御DDos攻击和CC攻击?

(六)可使用高仿服务器:高仿服务器具有高性能、高带宽、高防御的特点,在安全上、运行上自身具备一定维护的基础后盾,给后期维护带来了不少的方便,但是造价高昂,客户应当根据自己经济情况酌情考虑。

(七)定期更新管理密码:网站密码可被离职程序员记录或黑客入侵暴力破解获取,定期更新网站后台密码和远程服务器登陆密码可有效预防数据损失。

(八)定期查看网站日志:网站运行数据的记录都在网站日志里记载,开启并定期查看网站日志,清晰地了网站运行的轨迹,是网站维护的重要方式之一。

PHP网站被攻击,url后面多了?siteId=5JHAav.xls然后就被跳到其他网站去了,这是为什么?

黑客篡改了网页,你先清理到恶意代码,然后部署护卫神高级安全,从根本上解决入侵、

0条大神的评论

发表评论