Category: 计算机


由于windows在使用“L2TP/IPsec预共享密钥的VPN连接模式”情况下下仅支持证书,而对于使用psk连接l2tp/ipsec的时候则会会出现789错误,所以只有修改windows注册表,用如下方式修改:在“运行”中输入:(适用于xp。WIN7因为权限问题,推荐手动方式添加)
reg add “HKLM\SYSTEM\CurrentControlSet\Services\RasMan\Parameters” /v ProhibitIPSec /t REG_DWORD /d 1

或者手动方式添加:(适用于xp和WIN7)
1、单击“开始”,单击“运行”,键入 regedt32,然后单击“确定”。
2、找到并单击以下注册表子项:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters
3、在“编辑”菜单上,单击“添加值”。
4、在“值名称”框中,键入 ProhibitIpSec。
5、在“数据类型”列表中,单击“REG_DWORD”,然后单击“确定”。
6、在“数据”框中,键入 1,然后单击“确定”。
7、退出注册表编辑器,然后重新启动计算机。

另一种方法复制如下内容至“记事本”,并另存为ipsec.reg注册表文件,双击导入即可(适用于xp和WIN7)
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\RasMan\Parameters]
“ProhibitIPSec”=dword:00000001

参考
http://support.microsoft.com/kb/240262/zh-cn
http://support2.microsoft.com/default.aspx?scid=kb;en-us;q310109&sd=tech

VPN连接常见错误的原因:

691错误
用户名或密码错误。

619错误
上层路由器不支持GRE协议。您所在网络的路由器不支持,请更换路由器,或者使用L2TP连接。

742错误
服务器不支持加密连接。取消加密即可。

错误678、错误800
服务器未开启vpn服务或远程计算机无响应。

常用公共DNS服务器地址

一、国外DNS服务器地址:

Google Public DNS (8.8.8.8, 8.8.4.4)

OpenDNS (208.67.222.222, 208.67.220.220)

OpenDNS Family (208.67.222.123, 208.67.220.123)

V2EX DNS (199.91.73.222,178.79.131.110)

Comodo Secure (8.26.56.26, 8.20.247.20)

UltraDNS (156.154.70.1,156.154.71.1)

Norton ConnectSafe (199.85.126.10,199.85.127.10)
二、国内DNS服务器地址:

OneDNS (112.124.47.27)

OpenerDNS(42.120.21.30)

aliDNS (223.5.5.5,223.6.6.6)

114DNS (114.114.114.114,114.114.115.115)

114DNS安全版 (114.114.114.119,114.114.115.119)

114DNS家庭版 (114.114.114.110,114.114.115.110)

oracle常用命令

第一章:日志管理

1.forcing log switches
sql>; alter system switch logfile;
2.forcing checkpoints
sql>; alter system checkpoint;
3.adding online redo log groups
sql>; alter database add logfile [group 4]
sql>; (‘/disk3/log4a.rdo’,’/disk4/log4b.rdo’) size 1m;
4.adding online redo log members
sql>; alter database add logfile member
sql>; ‘/disk3/log1b.rdo’ to group 1,
sql>; ‘/disk4/log2b.rdo’ to group 2;
5.changes the name of the online redo logfile
sql>; alter database rename file ‘c:/oracle/oradata/oradb/redo01.log’
sql>; to ‘c:/oracle/oradata/redo01.log’;
6.drop online redo log groups
sql>; alter database drop logfile group 3;
7.drop online redo log members
sql>; alter database drop logfile member ‘c:/oracle/oradata/redo01.log’;
8.clearing online redo log files
sql>; alter database clear [unarchived] logfile ‘c:/oracle/log2a.rdo’;
9.using logminer analyzing redo logfiles
a. in the init.ora specify utl_file_dir = ‘ ‘
b. sql>; execute dbms_logmnr_d.build(‘oradb.ora’,’c:\oracle\oradb\log’);
c. sql>; execute dbms_logmnr_add_logfile(‘c:\oracle\oradata\oradb\redo01.log’,sql>; dbms_logmnr.new);
d. sql>; execute dbms_logmnr.add_logfile(‘c:\oracle\oradata\oradb\redo02.log’,sql>; dbms_logmnr.addfile);
e. sql>; execute dbms_logmnr.start_logmnr(dictfilename=>;’c:\oracle\oradb\log\oradb.ora’);
f. sql>; select * from v$logmnr_contents(v$logmnr_dictionary,v$logmnr_parameters
sql>; v$logmnr_logs);
g. sql>; execute dbms_logmnr.end_logmnr;

第二章:表空间管理

1.create tablespaces
sql>; create tablespace tablespace_name datafile ‘c:\oracle\oradata\file1.dbf’ size 100m,
sql>; ‘c:\oracle\oradata\file2.dbf’ size 100m minimum extent 550k [logging/nologging]
sql>; default storage (initial 500k next 500k maxextents 500 pctinccease 0)
sql>; [online/offline] [permanent/temporary] [extent_management_clause]
2.locally managed tablespace
sql>; create tablespace user_data datafile ‘c:\oracle\oradata\user_data01.dbf’
sql>; size 500m extent management local uniform size 10m;
3.temporary tablespace
sql>; create temporary tablespace temp tempfile ‘c:\oracle\oradata\temp01.dbf’
sql>; size 500m extent management local uniform size 10m;
4.change the storage setting
sql>; alter tablespace app_data minimum extent 2m;
sql>; alter tablespace app_data default storage(initial 2m next 2m maxextents 999);
5.taking tablespace offline or online
sql>; alter tablespace app_data offline;
sql>; alter tablespace app_data online;
6.read_only tablespace
sql>; alter tablespace app_data read only|write;
7.droping tablespace
sql>; drop tablespace app_data including contents;
8.enableing automatic extension of data files
sql>; alter tablespace app_data add datafile ‘c:\oracle\oradata\app_data01.dbf’ size 200m
sql>; autoextend on next 10m maxsize 500m;
9.change the size fo data files manually
sql>; alter database datafile ‘c:\oracle\oradata\app_data.dbf’ resize 200m;
10.Moving data files: alter tablespace
sql>; alter tablespace app_data rename datafile ‘c:\oracle\oradata\app_data.dbf’
sql>; to ‘c:\oracle\app_data.dbf’;
11.moving data files:alter database
sql>; alter database rename file ‘c:\oracle\oradata\app_data.dbf’
sql>; to ‘c:\oracle\app_data.dbf’;

第三章:表

1.create a table
sql>; create table table_name (column datatype,column datatype]….)
sql>; tablespace tablespace_name [pctfree integer] [pctused integer]
sql>; [initrans integer] [maxtrans integer]
sql>; storage(initial 200k next 200k pctincrease 0 maxextents 50)
sql>; [logging|nologging] [cache|nocache]
2.copy an existing table
sql>; create table table_name [logging|nologging] as subquery
3.create temporary table
sql>; create global temporary table xay_temp as select * from xay;
on commit preserve rows/on commit delete rows
4.pctfree = (average row size – initial row size) *100 /average row size
pctused = 100-pctfree- (average row size*100/available data space)
5.change storage and block utilization parameter
sql>; alter table table_name pctfree=30 pctused=50 storage(next 500k
sql>; minextents 2 maxextents 100);
6.manually allocating extents
sql>; alter table table_name allocate extent(size 500k datafile ‘c:/oracle/data.dbf’);
7.move tablespace
sql>; alter table employee move tablespace users;
8.deallocate of unused space
sql>; alter table table_name deallocate unused [keep integer]
9.truncate a table
sql>; truncate table table_name;
10.drop a table
sql>; drop table table_name [cascade constraints];
11.drop a column
sql>; alter table table_name drop column comments cascade constraints checkpoint 1000;
alter table table_name drop columns continue;
12.mark a column as unused
sql>; alter table table_name set unused column comments cascade constraints;
alter table table_name drop unused columns checkpoint 1000;
alter table orders drop columns continue checkpoint 1000
data_dictionary : dba_unused_col_tabs

第四章:索引

1.creating function-based indexes
sql>; create index summit.item_quantity on summit.item(quantity-quantity_shipped);
2.create a B-tree index
sql>; create [unique] index index_name on table_name(column,.. asc/desc) tablespace
sql>; tablespace_name [pctfree integer] [initrans integer] [maxtrans integer]
sql>; [logging | nologging] [nosort] storage(initial 200k next 200k pctincrease 0
sql>; maxextents 50);
3.pctfree(index)=(maximum number of rows-initial number of rows)*100/maximum number of rows
4.creating reverse key indexes
sql>; create unique index xay_id on xay(a) reverse pctfree 30 storage(initial 200k
sql>; next 200k pctincrease 0 maxextents 50) tablespace indx;
5.create bitmap index
sql>; create bitmap index xay_id on xay(a) pctfree 30 storage( initial 200k next 200k
sql>; pctincrease 0 maxextents 50) tablespace indx;
6.change storage parameter of index
sql>; alter index xay_id storage (next 400k maxextents 100);
7.allocating index space
sql>; alter index xay_id allocate extent(size 200k datafile ‘c:/oracle/index.dbf’);
8.alter index xay_id deallocate unused;

第五章:约束

1.define constraints as immediate or deferred
sql>; alter session set constraint[s] = immediate/deferred/default;
set constraint[s] constraint_name/all immediate/deferred;
2. sql>; drop table table_name cascade constraints
sql>; drop tablespace tablespace_name including contents cascade constraints
3. define constraints while create a table
sql>; create table xay(id number(7) constraint xay_id primary key deferrable
sql>; using index storage(initial 100k next 100k) tablespace indx);
primary key/unique/references table(column)/check
4.enable constraints
sql>; alter table xay enable novalidate constraint xay_id;
5.enable constraints
sql>; alter table xay enable validate constraint xay_id;

第六章:LOAD数据

1.loading data using direct_load insert
sql>; insert /*+append */ into emp nologging
sql>; select * from emp_old;
2.parallel direct-load insert
sql>; alter session enable parallel dml;
sql>; insert /*+parallel(emp,2) */ into emp nologging
sql>; select * from emp_old;
3.using sql*loader
sql>; sqlldr scott/tiger \
sql>; control = ulcase6.ctl \
sql>; log = ulcase6.log direct=true

第七章:reorganizing data

1.using export
$exp scott/tiger tables(dept,emp) file=c:\emp.dmp log=exp.log compress=n direct=y
2.using import
$imp scott/tiger tables(dept,emp) file=emp.dmp log=imp.log ignore=y
3.transporting a tablespace
sql>;alter tablespace sales_ts read only;
$exp sys/.. file=xay.dmp transport_tablespace=y tablespace=sales_ts
triggers=n constraints=n
$copy datafile
$imp sys/.. file=xay.dmp transport_tablespace=y datafiles=(/disk1/sles01.dbf, /disk2/sles02.dbf)
sql>; alter tablespace sales_ts read write;
4.checking transport set
sql>; DBMS_tts.transport_set_check(ts_list =>;’sales_ts’ .., incl_constraints=>;true);
在表transport_set_violations 中查看
sql>; dbms_tts.isselfcontained 为true 是, 表示自包含

第八章: managing password security and resources

1.controlling account lock and password
sql>; alter user juncky identified by oracle account unlock;
2.user_provided password function
sql>; function_name(userid in varchar2(30),password in varchar2(30), old_password in varchar2(30)) return boolean
3.create a profile : password setting
sql>; create profile grace_5 limit failed_login_attempts 3
sql>; password_lock_time unlimited password_life_time 30
sql>;password_reuse_time 30 password_verify_function verify_function
sql>; password_grace_time 5;
4.altering a profile
sql>; alter profile default failed_login_attempts 3
sql>; password_life_time 60 password_grace_time 10;
5.drop a profile
sql>; drop profile grace_5 [cascade];
6.create a profile : resource limit
sql>; create profile developer_prof limit sessions_per_user 2
sql>; cpu_per_session 10000 idle_time 60 connect_time 480;
7. view =>; resource_cost : alter resource cost
dba_Users,dba_profiles
8. enable resource limits
sql>; alter system set resource_limit=true;

第九章:Managing users

1.create a user: database authentication
sql>; create user juncky identified by oracle default tablespace users
sql>; temporary tablespace temp quota 10m on data password expire
sql>; [account lock|unlock] [profile profilename|default];
2.change user quota on tablespace
sql>; alter user juncky quota 0 on users;
3.drop a user
sql>; drop user juncky [cascade];
4. monitor user
view: dba_users , dba_ts_quotas

第十章:managing privileges

1.system privileges: view =>; system_privilege_map ,dba_sys_privs,session_privs
2.grant system privilege
sql>; grant create session,create table to managers;
sql>; grant create session to scott with admin option;
with admin option can grant or revoke privilege from any user or role;
3.sysdba and sysoper privileges:
sysoper: startup,shutdown,alter database open|mount,alter database backup controlfile,
alter tablespace begin/end backup,recover database
alter database archivelog,restricted session
sysdba: sysoper privileges with admin option,create database,recover database until
4.password file members: view:=>; v$pwfile_users
5.O7_dictionary_accessibility =true restriction access to view or tables in other schema
6.revoke system privilege
sql>; revoke create table from karen;
sql>; revoke create session from scott;
7.grant object privilege
sql>; grant execute on dbms_pipe to public;
sql>; grant update(first_name,salary) on employee to karen with grant option;
8.display object privilege : view =>; dba_tab_privs, dba_col_privs
9.revoke object privilege
sql>; revoke execute on dbms_pipe from scott [cascade constraints];
10.audit record view :=>; sys.aud$
11. protecting the audit trail
sql>; audit delete on sys.aud$ by access;
12.statement auditing
sql>; audit user;
13.privilege auditing
sql>; audit select any table by summit by access;
14.schema object auditing
sql>; audit lock on summit.employee by access whenever successful;
15.view audit option : view=>; all_def_audit_opts, dba_stmt_audit_opts, dba_priv_audit_opts, dba_obj_audit_opts
16.view audit result: view=>; dba_audit_trail, dba_audit_exists, dba_audit_object, dba_audit_session, dba_audit_statement

第十一章: manager role

1.create roles
sql>; create role sales_clerk;
sql>; create role hr_clerk identified by bonus;
sql>; create role hr_manager identified externally;
2.modify role
sql>; alter role sales_clerk identified by commission;
sql>; alter role hr_clerk identified externally;
sql>; alter role hr_manager not identified;
3.assigning roles
sql>; grant sales_clerk to scott;
sql>; grant hr_clerk to hr_manager;
sql>; grant hr_manager to scott with admin option;
4.establish default role
sql>; alter user scott default role hr_clerk,sales_clerk;
sql>; alter user scott default role all;
sql>; alter user scott default role all except hr_clerk;
sql>; alter user scott default role none;
5.enable and disable roles
sql>; set role hr_clerk;
sql>; set role sales_clerk identified by commission;
sql>; set role all except sales_clerk;
sql>; set role none;
6.remove role from user
sql>; revoke sales_clerk from scott;
sql>; revoke hr_manager from public;
7.remove role
sql>; drop role hr_manager;
8.display role information
view: =>;dba_roles, dba_role_privs, role_role_privs, dba_sys_privs, role_sys_privs, role_tab_privs, session_roles

第十二章: BACKUP and RECOVERY

1. v$sga, v$instance, v$process, v$bgprocess, v$database, v$datafile, v$sgastat
2. Rman need set dbwr_IO_slaves or backup_tape_IO_slaves and large_pool_size
3. Monitoring Parallel Rollback
>; v$fast_start_servers , v$fast_start_transactions
4.perform a closed database backup (noarchivelog)
>; shutdown immediate
>; cp files /backup/
>; startup
5.restore to a different location
>; connect system/manager as sysdba
>; startup mount
>; alter database rename file ‘/disk1/../user.dbf’ to ‘/disk2/../user.dbf’;
>; alter database open;
6.recover syntax
–recover a mounted database
>;recover database;
>;recover datafile ‘/disk1/data/df2.dbf’;
>;alter database recover database;
–recover an opened database
>;recover tablespace user_data;
>;recover datafile 2;
>;alter database recover datafile 2;
7.how to apply redo log files automatically
>;set autorecovery on
>;recover automatic datafile 4;
8.complete recovery:
–method 1(mounted databae)
>;copy c:\backup\user.dbf c:\oradata\user.dbf
>;startup mount
>;recover datafile ‘c:\oradata\user.dbf;
>;alter database open;
–method 2(opened database,initially opened,not system or rollback datafile)
>;copy c:\backup\user.dbf c:\oradata\user.dbf (alter tablespace offline)
>;recover datafile ‘c:\oradata\user.dbf’ or
>;recover tablespace user_data;
>;alter database datafile ‘c:\oradata\user.dbf’ online or
>;alter tablespace user_data online;
–method 3(opened database,initially closed not system or rollback datafile)
>;startup mount
>;alter database datafile ‘c:\oradata\user.dbf’ offline;
>;alter database open
>;copy c:\backup\user.dbf d:\oradata\user.dbf
>;alter database rename file ‘c:\oradata\user.dbf’ to ‘d:\oradata\user.dbf’
>;recover datafile ‘e:\oradata\user.dbf’ or recover tablespace user_data;
>;alter tablespace user_data online;
–method 4(loss of data file with no backup and have all archive log)
>;alter tablespace user_data offline immediate;
>;alter database create datafile ‘d:\oradata\user.dbf’ as ‘c:\oradata\user.dbf”
>;recover tablespace user_data;
>;alter tablespace user_data online
5.perform an open database backup
>; alter tablespace user_data begin backup;
>; copy files /backup/
>; alter database datafile ‘/c:/../data.dbf’ end backup;
>; alter system switch logfile;
6.backup a control file
>; alter database backup controlfile to ‘control1.bkp’;
>; alter database backup controlfile to trace;
7.recovery (noarchivelog mode)
>; shutdown abort
>; cp files
>; startup
8.recovery of file in backup mode
>;alter database datafile 2 end backup;
9.clearing redo log file
>;alter database clear unarchived logfile group 1;
>;alter database clear unarchived logfile group 1 unrecoverable datafile;
10.redo log recovery
>;alter database add logfile group 3 ‘c:\oradata\redo03.log’ size 1000k;
>;alter database drop logfile group 1;
>;alter database open;
or >;cp c:\oradata\redo02.log’ c:\oradata\redo01.log
>;alter database clear logfile ‘c:\oradata\log01.log’;

在”~/.config/google-chrome/Default/Preferences”尾端”serif_font_family”下面另开一行加入

 

“sansserif_font_family”: “你自定义的字体名”,

1、用 SET 语法来指定,不加 "GLOBAL" 的话就只对本次会话有效。

SET [GLOBAL] character_set_client = utf8; SET [GLOBAL] character_set_connection = utf8; SET [GLOBAL] character_set_database = utf8; SET [GLOBAL] character_set_results = utf8; SET [GLOBAL] character_set_server = utf8;

2、只对本次会话有效。

SET NAMES ‘utf8’;

3、直接修改 my.cnf,[client]和[MySQLd]下面各增加一行内容,然后重启 MySQL,全局生效。

default-character-set = utf8

四大浏览器内核引擎介绍

Trident

Trident(又称为MSHTML),是微软的窗口操作系统(Windows)搭载的网页浏览器—Internet Explorer的排版引擎的名称,它的第一个版本随着1997年10月Internet Explorer第四版释出,之后不断的加入新的技术并随着新版本的Internet Explorer释出。在未来最新的Internet Explorer第七版中,微软将对Trident排版引擎做了的重大的变动,除了加入新的技术之外,并增加对网页标准的支持。尽管这些变动已经在相当大的程度上落后了其它的排版引擎,如Gecko、WebCore、KHTML及Presto。

Gecko

Gecko是套开放源代码的、以C++编写的网页排版引擎。目前为Mozilla家族网页浏览器以及Netscape 6以后版本浏览器所使用。这软件原本是由网景通讯公司开发的,现在则由Mozilla基金会维护。这套排版引擎提供了一个丰富的程序界面以供互联网相关的应用程式使用,例如网页浏览器、HTML编辑器、客户端/服务器等等。虽然最初的主要对象是 Mozilla的衍生产品,如Netscape和Mozilla Firefox,现在已有很多其他软件现在利用这个排版引擎。Gecko是跨平台的,能在Microsoft Windows、Linux和Mac OS X等主要操作系统上运行。

WebKit(KHTML)

WebKit是Mac OS X v10.3及以上版本所包含的软件框架(对v10.2.7及以上版本也可通过软件更新获取)。 同时,WebKit也是Mac OS X的Safari网页浏览器的基础。WebKit是一个开源项目,包含了来自KDE项目和苹果公司的一些组件。目前使用WebKit 引擎的浏览器主要有:Safari(apple出品),Midori,chrome(google出品)等。

Presto
 
Presto是一个由Opera Software开发的浏览器排版引擎,目前Opera 7.0~10.00版本使用该款引擎。Presto的特点就是渲染速度的优化达到了极致,它是目前公认的网页浏览速度最快的浏览器内核,然而代价是牺牲了网页的兼容性。Presto实际上是一个动态内核,与Trident、Gecko等内核的最大区别就在于脚本处理上,Presto有着天生的优势,页面的全部或者部分都能够在回应脚本事件时等情况下被重新解析。此外该内核在执行JavaScript时有着最快的速度,根据同等条件下的测试,Presto内核执行同等JavaScript所需的时间仅有Trident和Gecko内核的约1/3。不过,不足之处在于Presto是商业引擎,使用Presto的除了Opera以外,只剩下NDS Browser、Nokia 770网络浏览器等,这在很大程度上限制了Presto的发展。

常用的7个.htaccess代码

htAccess 文件(Hypertext Access file)是Apache Web服务器的一个非常强大的配置文件,对于这个文件,Apache有一堆参数可以让你配置出几乎随心所欲的功能。

1、使用.htaccess挡掉搜寻引擎机蜘蛛

挡掉百度搜寻引擎

百度是传说中的暴力搜寻引擎,不遵守搜寻引擎的规则,若你尝试使用robot.txt来挡住,那非常恭喜你,绝对无效。所以一定要使用比较暴力、强硬的手段才能,因此透过.htaccess就可以处理了,如果你要挡掉一些搜寻引擎(像是百度、搜狗等),那请将以下程式码贴到htaccess.txt 文件中。

SetEnvIfNoCase User-Agent "^Baidu" bad_bot
SetEnvIfNoCase User-Agent "^sogou" bad_bot
SetEnvIfNoCase User-Agent "^Bloghoo" bad_bot
SetEnvIfNoCase User-Agent "^Scooter" bad_bot
Deny from env=bad_bot

挡掉Google搜寻引擎

如果你想要挡掉Google搜寻引擎,当然也可以透过.htaccsee挡掉,只要输入以下程式码就可以了,如果要连同暴力百度搜寻引擎一起封锁,那就把这两串程式码放在同一个htaccsee.txt文件中。

SetEnvIf User-Agent "^Googlebot" google
Deny from env=google

2、用.htaccess封锁某国家IP网段

有时候自己可能会规画网站的发展方向,有不欢迎某些特定的国家来访,这时候第一个想法应该是要锁该国家的IP,但是却不知从何做起?因为不知道那个国家的IP跟本不能锁,这时候可以透过「blockcountry」线上工具网站产生的htaccess语法来替自己封锁想要封锁的IP网段国家。

第1步 来到Block country(http://www.blockcountry.com) 网站首页,首先你会看到一个框框,框框中有许多国家,请您挑选要封锁的国家,可以复选,选择完成后请点击下方的﹝Block Now!﹞。

第2步 将刚刚网页上产生的程式码贴到htaccess文件中,然后储存。Apache对于被拒绝的IP会返回403错误。

3、用.htaccess防止图片、文件盗链

一个图文并茂的网站,最怕的就是文章转贴,虽然现一直在尊重着作权法,但还是有许多人假装没看见?许多人喜欢「复制→贴上」,但这样一个转贴动作却会对一个网站造成莫大的伤害,除了辛苦写的文章被偷走外,连图片也盗链!图片或文件被盗连最怕的就是后续的流量,为了避免这种问题,我们必须自立自强,防止盗链这种可恶的行为!

如果是cPanel虚拟主机,防盗连的方法不外乎就是到cPanel后台进行设定。如果你是其他类型的空间后台或者是说你只有FTP权限的空间,那该怎么办呢?其实只要你的空间支持.htaccess文件并且支持ReWrite,你都可以防止图片与文件的盗链!

通过.htaccess来防止网站的图片、压缩文件、或视频等非Html文件被盗链的方法相当简单,通过在该文件中加入几句命令即可保护我们宝贵的带宽。例如chinaz.com的设置如下:

以下为引用的内容:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !nobing.cn [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !www.domain.com [NC]
RewriteRule .*.(gif|jpg)$ http://www.chinaz.com/no.png [R,NC,L]

代码详细介绍:Apache服务器使用.htaccess实现图片防盗链

4、利用.htaccess来保护主机下的目录与文件

一般来说很多虚拟主机预设是没有开启保护网站主机目录下的文件,其实很危险的,假若你的目录下忘记放置index文件,那很可能您目录就被看光,一个不小心很可能重要资料就被拿走,这是蛮严重的一件事情。如果是Linux主机,我们可以透过简易的.htaccess语法来保护网站主机目录下的文件,让别人无法轻易看见。

平常我们使用的最简单保护目录的方法,莫过于使用「index.php」、「index.html」等等之类的网站index文件,因为主机内预设的设定在目录中预设就是要抓index文件,而index文件通常会有很多种,主机会依续排列下来抓取,所以可以设定index文件来让主机抓取,以达到保护目录的效果。但如果主机需要的index文件没有一个存在,这时候主机就会直接显示目录内的东西了,因为主机不知道要抓取谁当作主要网页,所以会全部显示。

虽然使用index文件来保护目录是可行的,但是每个子目录都需要传一个index文件其实蛮累人的,这时候我们就可以利用「.htaccess」来批量处理。

Options -Indexes

 语法的进阶使用

当然该语法还有其他相关的用途,以下列出简单的几项供大家参考使用,如果你觉得以下的语法不是你想要或是想学更多,你可以到Apache官方网站来看看英文说明书,查看看还有什么关于「indexoptions」的用途或是其他不错的功能喔!

Options +Indexes:显示目录下所有文件
Options -Indexes:隐藏目录下所有文件 (上面已经介绍过)
IndexOptions +FancyIndexing:显示目录下所有文件,文件前面包含档案类型的小图示
IndexOptions -FancyIndexing : 显示目录下所有文件,但不包含文件类型的小图示
IndexIgnore *.php *.exe:隐藏特定的文件, 其余文件正常显示(隐藏所有的php和exe文件)

5、使用.htaccess 创建自定义的出错页面

对于Linux Apache来说这是一项极其简单的事情。使用下面的.htaccess语法你可以轻松的完成这一功能。(把.htaccess放在你的网站根目录下)

ErrorDocument 401 /error/401.PHP
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php

6、把某些特殊的IP地址的请求重定向到别的站点

ErrorDocument 403http://www.youdomain.com
Order deny,allow
Deny from all
Allow from 124.34.48.165
Allow from 102.54.68.123

7、把老的域名转像新的域名

# redirect from old domain to new domain
RewriteEngine On
RewriteRule ^(.*) $http://www.yourdomain.com/$1 [R=301,L]

  PHP本身再老版本有一些问题,比如在 php4.3.10和php5.0.3以前有一些比较严重的bug,所以推荐使用新版。另外,目前闹的轰轰烈烈的SQL Injection也是在PHP上有很多利用方式,所以要保证安全,PHP代码编写是一方面,PHP的配置更是非常关键。

  我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最主要就是要配置php.ini中的内容,让我们执行php能够更安全。整个 PHP中的安全设置主要是为了防止phpshell和SQL Injection的攻击,一下我们慢慢探讨。我们先使用任何编辑工具打开/etc/local/apache2/conf/php.ini,如果你是采用其他方式安装,配置文件可能不在该目录。

(1) 打开php的安全模式

  php的安全模式是个非常重要的内嵌的安全机制,能够控制一些php中的函数,比如system(),同时把很多文件操作函数进行了权限控制,也不允许对某些关键文件的文件,比如/etc/passwd,但是默认的php.ini是没有打开安全模式的,我们把它打开:
  safe_mode = on

(2) 用户组安全

  当safe_mode打开时,safe_mode_gid被关闭,那么php脚本能够对文件进行访问,而且相同组的用户也能够对文件进行访问。

  建议设置为:
  safe_mode_gid = off

  如果不进行设置,可能我们无法对我们服务器网站目录下的文件进行操作了,比如我们需要对文件进行操作的时候。

(3) 安全模式下执行程序主目录

  如果安全模式打开了,但是却是要执行某些程序的时候,可以指定要执行程序的主目录:
  safe_mode_exec_dir = D:/usr/bin

  一般情况下是不需要执行什么程序的,所以推荐不要执行系统程序目录,可以指向一个目录,然后把需要执行的程序拷贝过去,比如:
  safe_mode_exec_dir = D:/tmp/cmd

  但是,我更推荐不要执行任何程序,那么就可以指向我们网页目录:
  safe_mode_exec_dir = D:/usr/www

(4) 安全模式下包含文件

  如果要在安全模式下包含某些公共文件,那么就修改一下选项:
  safe_mode_include_dir = D:/usr/www/include/

  其实一般php脚本中包含文件都是在程序自己已经写好了,这个可以根据具体需要设置。

(5) 控制php脚本能访问的目录

  使用open_basedir选项能够控制PHP脚本只能访问指定的目录,这样能够避免PHP脚本访问不应该访问的文件,一定程度上限制了phpshell的危害,我们一般可以设置为只能访问网站目录:
  open_basedir = D:/usr/www

(6) 关闭危险函数
  
  如果打开了安全模式,那么函数禁止是可以不需要的,但是我们为了安全还是考虑进去。比如,我们觉得不希望执行包括system()等在那的能够执行命令的php函数,或者能够查看php信息的phpinfo()等函数,那么我们就可以禁止它们:
  disable_functions = system,passthru,exec,shell_exec,popen,phpinfo

  如果你要禁止任何文件和目录的操作,那么可以关闭很多文件操作
  disable_functions = chdir,chroot,dir,getcwd,opendir,readdir,scandir,fopen,unlink,delete,copy,mkdir, rmdir,rename,file,file_get_contents,fputs,fwrite,chgrp,chmod,chown

  以上只是列了部分不叫常用的文件处理函数,你也可以把上面执行命令函数和这个函数结合,就能够抵制大部分的phpshell了。

(7) 关闭PHP版本信息在http头中的泄漏

  我们为了防止黑客获取服务器中php版本的信息,可以关闭该信息斜路在http头中:
  expose_php = Off

  比如黑客在 telnet url 80 的时候,那么将无法看到PHP的信息。

(8) 关闭注册全局变量

  在PHP中提交的变量,包括使用POST或者GET提交的变量,都将自动注册为全局变量,能够直接访问,这是对服务器非常不安全的,所以我们不能让它注册为全局变量,就把注册全局变量选项关闭:
  register_globals = Off

  当然,如果这样设置了,那么获取对应变量的时候就要采用合理方式,比如获取GET提交的变量var,那么就要用$_GET[‘var’]来进行获取,这个php程序员要注意。

(9) 打开magic_quotes_gpc来防止SQL注入

  SQL注入是非常危险的问题,小则网站后台被入侵,重则整个服务器沦陷,所以一定要小心。php.ini中有一个设置:
  magic_quotes_gpc = Off

  这个默认是关闭的,如果它打开后将自动把用户提交对sql的查询进行转换,比如把 ‘ 转为 ‘等,这对防止sql注射有重大作用。所以我们推荐设置为:
  magic_quotes_gpc = On

(10) 错误信息控制

  一般php在没有连接到数据库或者其他情况下会有提示错误,一般错误信息中会包含php脚本当前的路径信息或者查询的SQL语句等信息,这类信息提供给黑客后,是不安全的,所以一般服务器建议禁止错误提示:
  display_errors = Off

  如果你却是是要显示错误信息,一定要设置显示错误的级别,比如只显示警告以上的信息:
  error_reporting = E_WARNING & E_ERROR

  当然,我还是建议关闭错误提示。

(11) 错误日志

  建议在关闭display_errors后能够把错误信息记录下来,便于查找服务器运行的原因:
  log_errors = On

  同时也要设置错误日志存放的目录,建议根apache的日志存在一起:
  error_log = D:/usr/local/apache2/logs/php_error.log

  注意:给文件必须允许apache用户的和组具有写的权限。

  MYSQL的降权运行

  新建立一个用户比如mysqlstart
  net user mysqlstart ****microsoft /add
  net localgroup users mysqlstart /del
  不属于任何组

  如果MYSQL装在d:mysql ,那么,给 mysqlstart 完全控制的权限,然后在系统服务中设置,MYSQL的服务属性,在登录属性当中,选择此用户 mysqlstart 然后输入密码,确定。重新启动 MYSQL服务,然后MYSQL就运行在低权限下了。

  如果是在windos平台下搭建的apache我们还需要注意一点,apache默认运行是system权限,这很恐怖,这让人感觉很不爽.那我们就给apache降降权限吧。

  net user apache ****microsoft /add
  net localgroup users apache /del
  好了,我们建立了一个不属于任何组的用户apche。

  我们打开计算机管理器,选服务,点apache服务的属性,我们选择log on,选择this account,我们填入上面所建立的账户和密码,重启apache服务,ok,apache运行在低权限下了。

  实际上我们还可以通过设置各个文件夹的权限,来让apache用户只能执行我们想让它能干的事情,给每一个目录建立一个单独能读写的用户。

  这也是当前很多虚拟主机提供商的流行配置方法哦,不过这种方法用于防止这里就显的有点大材小用了。

Google今天给大家带来一个好消息,就是免费提供了一组快速安全的DNS服务器。这回OpenDNS可是有竞争对手了,大家可以换一下使用Google DNS,看看好不好用!2010年5月,Symantec加入了安全DNS阵营,推出了自己的Norton DNS。

DNS 是域名系统 (Domain Name System) 的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务。在Internet上域名与IP地址之间是一对一(或者多对一)的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。 DNS 命名用于 Internet 等 TCP/IP 网络中,通过用户友好的名称查找计算机和服务。当用户在应用程序中输入 DNS 名称时,DNS 服务可以将此名称解析为与之相关的其他信息,如 IP 地址。因为,你在上网时输入的网址,是通过域名解析系统解析找到了相对应的IP地址,这样才能上网。其实,域名的最终指向是IP。

1、OpenDNS
http://www.opendns.com
208.67.222.222
208.67.220.220

2、Google Public DNS
http://code.google.com/speed/public-dns/
8.8.8.8
8.8.4.4

3、Norton DNS
http://www.nortondns.com
198.153.192.1
198.153.194.1

关于Winsock LSP“浏览器劫持”,中招者一直高居不下,由于其特殊性,直接删除而不恢复LSP的正常状态很可能会导致无法上网所以对其修复需慎重.

先说说什么是Winsock LSP“浏览器劫持”.Winsock LSP全称Windows Socket Layered Service Provider(分层服务提供商),它是Windows底层网络Socker通信需要经过的大门。一些流氓软件可以把自已加进去,就可以截取、访问、修改网络的数据包,可以随意添加广告,还能获取你的浏览习惯.这里加进的是木马,后果可想而知。而且因为LSP工作在底层,所以无论你用什么浏览器,都逃不了经过它。而LSP中的dll文件被删除后,就会出现无法上网的情况。

LSP服务在注册表中的位置 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock\Parameters\NameSpace_Catalog5\Catalog_Entries,默认系统已有LSP,分别负责TCP/IP组件(mswsock.dll)和NTDS组件(winrnr.dll)的正常工作,它们的项分别为 000000000001和000000000002,这两个项表示优先权,如果恶意程序想要劫持,只要将自身的项改为000000000001,将系统项依次推后即可,这样就可以优先处理恶意程序了。

解决办法:

方法1.用360的LSP修复功能来修复。如果提示你的“LSP没有异常,不用修复”,但是你还是上不了网,执行ping命令,在ip地址处会出现(?),无法ping通外网。那么你就用360的“恢复Winsock LSP到初始状态”的功能。

方法2.就是大家熟悉的,也就是常用的方法,用LSPFix这个工具在断开网络下修复

方法3.Windows XP Service Pack 2 中有两个新增的 Netsh 命令。

" netsh winsock reset catalog   该命令将 Winsock 目录重置为默认配置。如果安装了可导致网络连接丢失的不正确的 LSP,该命令会很有用。尽管使用该命令可以还原网络连接,但应该慎重使用,因为以前安装的 LSP 都将需要重新安装。

" netsh winsock show catalog   该命令会显示安装在计算机上的 Winsock LSP 列表。

所以呢,我们在没有任何辅助工具的情况下可以用netsh winsock reset命令来重置Winsock