Archive for web

Google jsAPI托管你的js库

在我们的js中,最大的一般还是js库,毕竟具体的功能实现只需要写一点点代码而已。但是js库里那么多用到的没用到的东西,还是有点份量的。我们 又想用,又嫌它大。怎么办呢?拆成很多个吧,多一个js还多一个并发连接呢…… 幸好,google挺够意思,号称“永久提供”常见js库,google的服务器和线路品质那自然是不在话下的。即提高了下载速度又减少了自己服务器的并 发连接数。不用就是傻子了。 用起来也很简单,直接在网页里引用google服务器上的相关js文件就可以了。不过,如果引用多个js,就要插入多段的script。现在像我这样代码 能少一个字算一个字的人不少。google也提供了相应的办法,那就是google load。我们只需要在页面里引用一个js文件,就可以根据需要实时加载用到的js库了。首先在页头部分加入以下这行代码:
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
这就足够了,google提供了以下这些js框架/库的API: jQuery jQuery UI Prototype script.aculo.us MooTools Dojo 而且google的API中包括这些js框架/库的所有正式发布版。你可以根据自己的需要来选择。以jQuery为例,我们可以这样使用:
<script type="text/javascript">
  google.load("jquery", "1.3.2");//加载jQuery 1.3.2
 </script>
这样我们就从google的最近的CDN镜像上加载了jQuery 1.3.2版的js库,接下来就可以正常写js代码了。不过,即使是google的CDN镜像,下载也毕竟是需要时间的,万一代码库还没有下载完而浏览器 已经解释到了下面的代码了怎么办?我们可以设定在js库加载完以后才开始执行js:
<script type="text/javascript">
    google.load("jquery", "1.3.2"); //加载jQuery 1.3.2
    google.setOnLoadCallback(function() {//加载完成后执行代码
        $("body").html("Hello World!");
    });
</script>
Read more...

十个PHP高级应用技巧

收藏学习 PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI或者Perl更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成 HTML标记的CGI要高许多。下面介绍了十个PHP高级应用技巧。 1, 使用 ip2long() 和 long2ip() 函数来把 IP 地址转化成整型存储到数据库里。 这种方法把存储空间降到了接近四分之一(char(15) 的 15 个字节对整形的 4 个字节),计算一个特定的地址是不是在一个区段内页更简单了,而且加快了搜索和排序的速度(虽然有时仅仅是快了一点)。 2, 在验证 email 地址的时候使用 checkdnsrr() 函数验证域名是否存在。 这个内置函数能够确认指定的域名能够解析成 IP 地址。该函数的PHP 文档的用户评论部分有一个简单的用户自定义函数,这个函数基于 checkdnsrr(),用来验证 email 地址的合法性。对于那些认为自己的 email 地址是 [url=mailto:“joeuser@wwwphp.net]“joeuser@wwwphp.net[/url]” 而不是 [url=mailto:“joeuser@php.net]“joeuser@php.net[/url]” 的家伙们,这个方法可以很方便的抓住他们。 3, 如果你使用的是 PHP 5 和 MySQL 4.1 或者更高的版本,考虑抛弃 mysql_* 系列函数改用改进版的 mysqli_* 系列函数。 一个很好的功能就是你可以使用预处理语句,如果你在维护一个数据库密集型站点,这个功能能够加快查询速度。一些评估分数。 4, 学会爱上三元运算符。 5, 如果你在项目中感觉到有可复用的部分,在你写下一行代码前先看看 PEAR 中是否已经有了。 很多 PHP 程序员都知道 PEAR 是一个很好的资源库,虽然还有很多程序员不知道。这个在线资源库包含了超过 400 个可以复用的程序片段,这些程序片段你可以立即用刀你的程序里。除非说你的项目真的是非常特别的,你总能找到帮你节省时间的 PEAR 包。(参见 PECL) 6, 用 highlight_file() 来自动的打印出格式化的很漂亮的源代码。 如果你在留言板、IRC 这些地方寻求一个脚本的帮助的话,这个函数用起来非常的顺手。当然了,要小心不要意外的泄露出你的数据库连接信息和密码等。 7, 使用 error_reporting(0) 函数来防止用户看到潜在的敏感错误信息。 在理想情况下,发布服务器应该在 php.ini 里完全禁止。但是如果你用的是一个共享的 web 服务器的话,你没有自己的 php.ini 文件,那么这种情况下你最好的选择就是在所有脚本的第一行前加上 error_reporting(0);(或者使用 require_once() 方法)。这就能够在出错的时候完全屏蔽敏感的 SQL 查询语句和路径名。 8, 在网数据库中存储很大的字符串之前使用 gzcompress() 和 gzuncompress() 来显式的压缩/解压字符串。 这个 PHP 内置函数使用 gzip 算法,可以压缩普通文本达 90%。在我每次要读写 BLOB 类型的字段的时候都使用这些函数。唯一额例外就是当我需要全文检索的时候。 9, 通过“引用”传递参数的方法从一个函数中得到多个返回值。 就像三元运算符一样,大部分受过正式编程训练的程序员都知道这个技巧。但是那些 HTML 背景大于 Pascal 背景的程序员都或多或少的有过这样的疑问“在仅能使用一次 return 的情况下,从一个函数里返回多个值?”答案就是在变量前加上一个 “&” 符号,通过“引用”传递而非“值”传递。 10, 完全理解“魔术引号”和 SQL 注入的危险性。 我希望阅读到这里的开发者都已经很对 SQL 注入和了解了。不过我还是把这条列在这里,是因为这个确实有点难以理解。如果你还没有听说过这种说法,那么把今天剩下的时间都用来 Google、阅读吧。
Read more...

Python Django在windows的安装

1 、Apache安装配置 下载http://httpd.apache.org/download.cgi 一路next  我是直接用的wamp的 2、Python安装 直接过了 3、Django安装 下载:https://www.djangoproject.com/download/ 在解压出的目录下执行: python setup.py install ,django就自动安装到了C:\Python25\Lib\site-packages 这个目录下了。 Python25/script/目录下有Django-admin.py  在该目录 下执行命令:Django-admin.py startproject testbb 创建一个工程 看到Python25/script/下多一个testbb目录,里面有文件。 testbb目录下执行manage.py runserver,打开浏览器:http://127.0.0.1:8000/ 可以看到内容,哈哈。 4、mod_python安装 选择路径OK,下载http://archive.apache.org/dist/httpd/modpython/win/3.3.1/ 5、安装PIL 直接下载安装了。 6、MySQL安装 下载:http://dev.mysql.com/downloads/mysql/5.0.html 7、MySQL-python 找到一个好的下载地址http://www.codegood.com/downloads 在运行Python setup.py install后,出现serverKey =_winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,options['registry_key']),如果使 用mysql 5.5需要修改site.cfg文件中registry_key = SOFTWARE\MySQL AB\MySQL Server 5.0修改为5.5。 1)安装MingW32。先下载mingw-get,然后用mingw-get安装g
cc. 2)安装MySQL Connector/C. 网上有很多文档说是安装MySQL Server,但是我安装了MySQL Server(包含开发用的Header/Lib),结果在后面哦编译中还是报有些头文件找不到,后来才发现应该是安装Connector/C, 而不是MySQL的Server。 3)注释掉MySQL Connector/C中的config-win.h中的行typedef int mode_t; 4)下载MySQL-python-1.2.3.tar.gz,解压后,修改MySQL-python-1.2.3中的setup_window.py. a)注释掉行mysql_root, dummy = _winreg.QueryValueEx(serverKey,'Location') 修改为:mysql_root=r"<安装MySQL Connector/C的目录>"  *虽然那个serverKey可以在site.cfg中设置,但是感觉比较怪异,为什么不让用户直接在site.cfg中配置这个Locstion呢,反倒是要配置一个注册表中的键值。 b)注释掉行libraries = [ 'kernel32', 'advapi32', 'wsock32',client] 修改为:libraries = [ 'kernel32', 'advapi32', 'wsock32',"libmysql"] *这个真的让我郁闷了很久,当使用mysqlclient这个lib时,undefined reference超多。为了查那些错误,让我浪费了很多的时间,最后尝试写死了用libmysql,竟然通过了. c)注释掉行extra_compile_args = [ '/Zl' ] 修改为:extra_compile_args = [ ] *这个Option应该是GCC不支持。 5)在MySQL-python-1.2.3中执行 python ez_setup.py install python setup.py build --compiler=mingw32 python setup.py install 6) 把MySQL Connector/C.中的lib/opt/libmysql.dll复制到Windows的System32目录下面。 7)修改MySQL-python-1.2.3中的tests/test_MySQLdb_dbapi20.py中的connect_kw_args,加入user,passwd,host等参数。并运行测试,如果所有的Test都通过了,就OK了。
Read more...

入侵大型网站的完整思路

1.acunetix web vulnerability Scanner 4 简称AC4 2.另外以下一种方式走的通,就不用往下走了 3.个人爱好用Portready,是因为他快速准确,当然你也可以用别的. 4.AC4扫描很耗时间,扫一个网站大约需要3-5个小时,扫整个网段大约需要8个小时左右 方法: 1.X-SCAN扫描目标服务器(一般是没有漏洞,收集信息用吧),看看IIS写权限有漏洞吗,用53溢出或者其他0day和溢出工具试试==& gt;手工查看主站漏洞,先用google+阿d批量扫注入,再手工测试漏洞(例如注入,上传,爆库等等),同时用AC4扫(它在注入方面很细致)==获得 WEBSHELL==提权获得3389 (也许有时候把第3条放在第一条前,更合理一些,直接嗅探方便些)。 2.用http://www.seologs.comip-domains.html将主站列同服务器反解析域名,旁注,==>获得WEBSHELL==>提权获得3389 =======渗透过程(选择比较近的网段,同一个网关才好嗅探啊)========== 3.用IIS写权限测试80,8080端口整个网段,用Portready扫描53主机溢出(或者其他漏洞溢出)==>如果有写权限主机,那 么提权,获得系统权限,如果可以溢出,获得系统权限==>tracert目标主机,是否同一个网关==>得到3389,用CAIN嗅探目标主 机 80,21,3389等==>获得目标WEBSHELL==>提权获得目标主机3389 4.用Portready扫描同网段3389,80,8080,8000满足3389+80,8000,8080条件的服务器,反解析域名,手工测 试漏洞,同时用AC4扫描网站列表==>获得webshell,提权得到系统权限==>tracert目标主机,是否同一个网关==> 得到 3389,用CAIN嗅探目标主机80,21,3389等==>获得WEBSHELL==>提权获得3389。 5.用Portready扫描同网段80,8000,8080(主机,(除去上一条扫到的3389主机列表),反解析IP,生成列表,手工测试每个 网站, 同时用AC4扫描网站列表(如果网站有漏洞,获得WEBSHELL==>提权获得3389==>tracert目标主机,是否同一个网关== >cain嗅探目标主机==>获得目标主机WEBSHELL==>提权获得目标主机3389),同时用x-scan扫描同网段所有主机 (如果有漏洞,提权得到3389==>tracert目标主机,是否同一个网关==>cain嗅探目标主机==>获得目标主机 WEBSHELL==>提权获得目标主机3389) 6.如果以上均没有漏洞,那就选择网段远一点,或者整个网段,返回第3条。 本文摘自网络由网络安全攻防研究室(www.91ri.org) 信息安全小组收集整理.转载本文请著名原文地址及原作者版权信息。
Read more...

结构化Web编程语言Dart

结构化Web编程语言Dart 支持在浏览器上 (Chrome, Safari 5+, Firefox 4+) 和服务器上运行。在浏览器运行需使用编译器转换成JavaScript代码。 Google发布的结构化Web编程语言Dart 地址 http://www.dartlang.org/ 示例: main() { var s = 0; for (var i = 0; i < 10; i++){ s += i; } print('Total:${s}'); } 官方有提供一个名为Dartboard的工具由于在浏览器中编写和调试代码。 Dartboard http://try-dart-lang.appspot.com/(被墙) 官方示例代码: http://code.google.com/p/dart/ 貌似被墙,先转一分语言规范文档文档到墙内,没有深入学习,故不做过多介绍。 Language Spec (29) Updated: 由于Dartboard被墙无法访问,挂了个反向代理,供喜欢尝试Dart的朋友使用 http://dart.ioio.name/ Updated2: 官方Dartboard地址 http://try.dartlang.org/ (某些地区应该可以访问)
Read more...

Previous Page 1 2 3 4