2009年2月27日 星期五

再次遭受黑客代码嵌入

今天有个网站再次遭到怀疑是来自俄罗斯黑客的代码嵌入攻击。分析代码发现用PHP inlude到下面这些地址:
.users.bishell.ru
.users.phpinclude.ru
bdijhzzazbzcij.users.phpinclude.ru
.users.phpfree.ru
.users.phpcoding.ru

不明白为什么服务器管理员会允许PHP包含外地文件。


有兴趣的可以看看相关源文件:
hack.php.txt
hack_msg.php.txt
hack_msg2.php.txt

标签: ,

2009年2月21日 星期六

我是FLash三维实时渲染的忠实粉丝

最近,Away3DAlternativa3D这两个我最关注的基于Flash的三维实时渲染框架都有着令人鼓舞的新作品出现。虽然在AS3代码的测试上,我更关注Papervision3D。但是从现在的三维实时渲染效果来看,Away3D和Alternativa3D无疑走在了前面。


Alternativa3D的武士效果:


Away3D的房间光影效果:

标签: ,

2009年2月20日 星期五

神秘的lightbox.js错误

今天网站页面用IE(7&8)突然都无法访问,弹出这样的错误窗口:

网页跟本无法打开,点击确定关闭错误窗口后,页面自动跳到空白页面。

用FireFox看,页面可以打开,但是Error Console里面有这样一个错误:
Error: uncaught exception: Permission denied to call method Location.toString

经过对网页源代码的排查发现是lightbox代码的问题:
script type="text/javascript" src="/css/prototype.js"
script type="text/javascript" src="/css/scriptaculous.js?load=effects,builder"
script type="text/javascript" src="/css/lightbox.js"

奇怪的是今天没有对lightbox代码进行过修改,真是很灵异的事件。

标签: ,

2009年2月10日 星期二

Javascript与swf对象交互的问题

在网页中通过flash来登录页面的时候,会涉及到Javascript与swf对象的交互问题。主要考虑的问题在于做到网页上的登录状况需要与swf里面的登录状况同步一致。AS里面的ExternalInterface包帮助我们解决这个问题,主要用法包括:

从Javascript发送数据到AS中的公开函数:
ExternalInterface.addCallback("JsFunc", AsFunc);

在AS中向Javascript函数传递数据。
ExternalInterface.call("JsFunc", AsData);

假设swf对象的id为zhaiduo,则可以这样来调用AS中的公开函数:
mc('zhaiduo').JsFunc(blahs...);
function mc(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName];
} else {
return document[movieName];
}
}

交互过程中意外遇到一个有趣的Javascript现象:
if (navigator.appName.indexOf("Microsoft") != -1) {
document.location.href="http://www.zhaiduo.com"; //IE8用reload无效
}else{
document.location.reload(); //FF2用href无效
}

标签: ,

2009年2月6日 星期五

集成phpBB3论坛

phpBB3从功能和界面上都是很不错的免费论坛程序。要把它和自己的系统结合起来其实也没有想象的那么复杂。这里有个简单的方案:
主要目标
  • 做到原有系统用户可以自动登录论坛
    如果用户已经登录原有系统,检查该用户是否在论坛有同名帐号,否则自动生成和用户同名的帐号,然后自动论坛。

  • 从论坛注册和登录都会自动到转到原有系统的注册和登录页面。
    屏蔽原论坛的注册登录功能,以及修改密码功能。
修改时遇到如下错误:
Strict Standards: Non-static method utf_normalizer::nfkc() should not be called statically
还不清楚原因何在,临时解决办法:先屏蔽utf8_clean_string函数。修改如下:
Edit: includes/auth.php
885 function login($username, $password, $autologin = false, $viewonline = 1, $admin = 0, $noclean = 0)
908 user_add($login['user_row'], (isset($login['cp_data'])) ? $login['cp_data'] : false);
if($noclean == 1){
$clean_name=$username;
}else{
$clean_name=utf8_clean_string($username);
}
$sql = 'SELECT user_id, username, user_password, user_passchg, user_email, user_type
FROM ' . USERS_TABLE . "
WHERE username_clean = '" . $db->sql_escape($clean_name) . "'";

Edit: includes/auth/auth_db.php
27 function login_db(&$username, &$password, $noclean=0)
if($noclean == 1){
$clean_name=$username;
}else{
$clean_name=utf8_clean_string($username);
}

标签: ,

2009年2月3日 星期二

Cube使用ShadedMaterial材质的黑三角型问题


在PV3d里面立方体原型Cube中使用ShadedMaterial材质的时候,如果立方体所有面都使用同一shader,渲染结果的时候,每个面会出现单个黑色三角形的问题。
myShader = new PhongShader(light);
myShadedMaterial = new ShadedMaterial(myBitmapMaterial,myShader);
mlist = new MaterialsList();
mlist.addMaterial(myShadedMaterial, "all");

根据nabble上的解释:解决办法只能给每个面指定单独的Shader。经测试问题解决。

另外,要解决两平面相对垂直时,视角中出现的三角形突起,如下图:

可以修改小平面useOwnContainer属性来解决。
plane.useOwnContainer=true;

但是发现如果有多个平行平面垂直于一平面的时候,useOwnContainer会导致平行平面之间视角失真的问题,看来还得找其他办法。如图,注意深蓝色平面。


正常情况


失真情况

更新:是Z-fighting的问题,用ViewportLayer和QuadrantRenderEngine来解决。具体如下
import org.papervision3d.render.QuadrantRenderEngine;
import org.papervision3d.view.layer.util.ViewportLayerSortMode;
...
viewport.containerSprite.sortMode = ViewportLayerSortMode.INDEX_SORT;
renderer = new QuadrantRenderEngine(QuadrantRenderEngine.ALL_FILTERS);
...
viewport.getChildLayer(target).layerIndex = 1;
viewport.getChildLayer(floor).layerIndex = -100;

标签: , , ,

Powered by Blogger

订阅
帖子 [Atom]