Welcome to PyTalk Irc Pages
pytalk_irc 是一个基于web.py的在线IRC系统,用户可以在线聊天。
版本:v2.0.0 release 20140531
Feature
- 基于web.py框架,简单实用,自定端口,可独立于80端口其他web服务而运行。代码纯python2编写,易于二次开发
- 使用sqlite轻型数据库,不需要任何第三方服务,能在vps上一键运行
- 界面清新,前端基于HTML5规范编写
- 利用 ajax 轮询查询数据,实时与朋友进行聊天
- 用户只能看到本次自己登录时间内的所有聊天记录,最大程度上避免产生越权操作
- 用户能够共享文件、图片,发送消息时系统会自动识别超链接
Weakness(fix)
- 通信过程未加密,将会在之后的版本进行修改
- 用户登录、注册未使用验证码,存在用户密码被碰撞的危险
- 暂不支持https,将在之后的版本加入
- 用户不能修改密码,首次登陆的密码作为用户今后的密码
Startup
使用前需安装web.py库,安装方式(详见 http://webpy.org/ ):
sudo easy_install web.py
pytalk 将在81端口运行(默认8080端口):
# python ./app.py 81
vps用户可以使用nohup,将app.py作为守护进程运行:
# nohup python ./app.py 81
Demo
Document
pytalk基于python web框架web.py,程序入口点app.py,所有配置文件在setting.py中。 setting设置如下:
- database 数据库地址,默认 "db/pytalk.db3"
-
root_site 网址,默认为空。root_site为空时自动取用户访问时输入的值,可能存在潜在的安全问题。
- 带端口号,写作"http://yoursite:port/",如"http://www.qq.com:8080/"
- 端口号即为运行app.py时输入的端口号,否则不能正常显示
- urls url规则,作为pytalk最重要的控制器部分,请勿随意更改。如有需要更改,请参照web.py文档中的url规则进行修改
- time_zone 时区设置,默认为+8区,聊天时时间即为北京时间
-
pytalk_cookie session设置,session作为pytalk中识别不同用户的唯一标志,十分重要。该字典有如下项:
- save_cookie_seconds,session保存时间(秒),默认为24小时。
- secret_key,重要!session加密字符串,请不要使用默认字符串,尽量进行修改,避免产生潜在的安全问题
- upload_dir 上传文件夹名,默认为"upfile"。用户共享文件时默认将上传的文件放在/static/upfile内
- upload_max_size 上传最大大小,单位:字节
- debug 是否开启DEBUG模式,默认不开启
Update Log
- v1.2.0
- 稳定版本发布
- v1.5.0
- 增加文件、图片共享功能
- 增加url自动识别,系统自动识别用户所发送信息中的url
- 修复一些用户体验方面的BUG
- v1.5.1
- 修复一个BUG:当消息过长时,可能会卡住系统。此版本中在前后端限制了信息长度最长为128个字符(所有字符包括汉字均为1字符)
- v1.5.2
- 增加上传文件格式限制,防止用户恶意上传html等文件进行xss攻击
- 修复一个上传位置的BUG:文件名为中文时出错
- v2.0.0
- 更新网站结构,将控制器文件放在包中,增加代码结构性
- 处理一个self xss漏洞:用户昵称如果是js代码,能在自己页面中触发
- 用户登录密码加密后传输,防止因为嗅探造成明文密码泄露
- setting文件中增加选项:是否开启debug模式,若开启debug模式可能会造成敏感信息泄露,但debug模式有助于二次开发
- 修改一个session保存时间的小BUG
Reference
- Web.py - http://webpy.org/
- Webpycms - https://github.com/taogogo/webpyCMS
Thanks
- Aaron Swartz 向你致敬
Contributors
- Phithon - 努力追逐大牛的小白