JAVA和.NET两个平台对于安全功能的比较

标签:,

  安全配置和代码封装

  安全配置

  两个平台的配置都是通过XML或纯文本文件,两个平台最大的区别在于处理安全配置体系的方式不同。

  在.NET平台,有图形接口和命令行二种方式来修改安全配置参数。Mscorcfg.msc是图形接口方式,Caspol.exe提供了命令行方式,适用于批处理或配置文本。

  Java平台只提供了图形接口的工具policytool.exe。和.NET不同的是,它的目标对象(配置文件)的名字和位置不是固定的。

  .NET定义了不同范围的安全配置文件:系统范围,本机范围,本用户范围。在配置有冲突时,原则上小范围的参数有优先权。

  Java和J2EE的核心配置文件都保存在固定位置,但扩展配置文件随厂家不同而不同。

  代码封装:检验Java 和.NET 的Common Library Runtime (CLR) 都实行内存安全或类型安全的保护机制,在这些平台开发的应用的安全性也是可以检验的。他们的实现机制有很大的不同。

  (全文…)

php过滤危险html代码

用PHP过滤html里可能被利用来引入外部危险内容的代码。有些时候,需要让用户提交html内容,以便丰富用户发布的信息,当然,有些可能造成显示页面布局混乱的代码也在过滤范围内。

以下是引用片段:
#用户发布的html,过滤危险代码

以下为引用的内容:
function uh($str)
{
    $farr = array(
        “/\s+/”,                                                                                            //过滤多余的空白 
(全文…)

关于编码问题

我们知道在学习php和jsp的时候,出现乱码是经常性的事情,怎样来一劳永逸的解决这个问题,我来做个总结。

首先来了解一下字符集,我们关心的字符集大概有这么几个,iso-8859-1、gb2312、gbk、utf-8,其中iso-8859-1是采用1个字节进行编码,而gb2312和gbk则是在其基础之上使用双字节来对汉字进行编码,而utf-8使用了3个字节编码,因此它容纳了几乎所有字符,包括中国、日本和韩国的表意字符。这也就不难理解为什么字符集设置错误会导致乱码了。

在来看一下在编程的过程中有哪些地方涉及到字符集的设置,本质上只有两个地方,文件本身的字符集和浏览器解析时使用的字符集,当然数据库也存在字符集的设置(其实数据库本质和文件没有区别),那怎样才能避免乱码呢?我们用保证字符集的一致性,那就是数据库、文件、浏览器3者使用的字符集是一致的,要么都是gb2312,要么都是utf-8,当然iso-8859-1不行,它不支持中文。

(全文…)

多语言和DSLs会使Java成为最后的大语言吗?

Ola Bini说这个世界不会再有新的大(big)语言了,因为开发者要根据其问题域来选择不同的语言。同样,Martin Folwer说开发者选择语言的根据是它能做什么,就像他们选择框架一样。另一方面,Joe Winchester说你只能精通一种语言。
Ola Bini在一篇最近发表的文章中详细分析了Haskell、Java和Ruby的类型系统的优劣,对这些语言进行比较并非不可能,但却很难:
现在我们有三种语言。一种静态检查较强,比如Haskell。一种静态检查较弱,比如Java。还有一种是动态检查的,如Ruby。从我的角度来说,他们分别善于不同的方面。甚至在同一个领域里他们都不会互相竞争。对他们进行比较真的没有什么太大意义。
(全文…)

对开发人员不友好的卡巴斯基

卡巴斯基这个俄国人做的杀毒软件呢,一直比较彪悍,经常见到什么东西都一阵嘶吼,然后你正常使用的软件也就挂了,QQ啊,这样的主流应用也是经常在它的误杀范围内。

 对于开发人员来说,因为卡巴斯基更是会有诸多不爽的问题,下面列举一二,是我的惨痛教训,也和大家分享一下。

SVN 问题:如果你使用 SVN 做配置管理的话,有时候 check in 代码会半天没有反应,如果这时候你把卡巴禁用,就一切正常了。
IntelliJ IDEA 端口冲突问题:用 IDEA 启动 Tomcat 时,使用了 8080 或者 80 端口,经常会启动就报端口冲突,而端口绝对是没有被其他应用程序占用的,而在独立的 Tomcat 下运行没有出现这样的问题,把卡巴对这些端口的监控关闭就一切正常。
这两个问题都是比较郁闷的,卡巴斯基很强悍,却总是让人很无奈。

PHP解压缩zip文件

标签:,

<?php
header(‘Content-type: text/html;charset=utf-8′);
error_reporting(E_ALL);
set_time_limit(0);

$zip_filename = “Test.zip”;

$zip_filename = key_exists(‘zip’, $_GET) && $_GET['zip']?$_GET['zip']:$zip_filename;
$zip_filepath = str_replace(‘\\’, ‘/’, dirname(__FILE__)) . ‘/’ . $zip_filename;

if(!is_file($zip_filepath))
{
(全文…)

避免OOP的形式,POP的思想

标签:,

随着PHP对OOP(面向对象编程)支持的增强以及程序设计思想的发展,越来越多的PHP程序员走进了OOP的世界.通过简单的学习,大多数程序员都能

快速的掌握OOP编程的基本技能.程序员们所写的代码里class,new等字符串也越来越多.但是作为程序员的你,是否陷入了一种OO形式,PO思想的

编程陷阱呢?
作为POP时代的程序员,为了实现计算一件房子的所有门的价格,他们会写这样一个函数.
代码:
/******************************************
函数:priceOfHouseDoor($num,$price)
功能:计算所有的门的价格总和
参数:$num 门的数量,$price 每扇门的价格
备注:Erichoo @ http://www.erichoo.com/
******************************************/
(全文…)