Pytalk

An online IRC system based on Web.py

View project onGitHub

Welcome to PyTalk Irc Pages

pytalk_irc 是一个基于web.py的在线IRC系统,用户可以在线聊天。

版本:v2.0.0 release 20140531

Feature

  1. 基于web.py框架,简单实用,自定端口,可独立于80端口其他web服务而运行。代码纯python2编写,易于二次开发
  2. 使用sqlite轻型数据库,不需要任何第三方服务,能在vps上一键运行
  3. 界面清新,前端基于HTML5规范编写
  4. 利用 ajax 轮询查询数据,实时与朋友进行聊天
  5. 用户只能看到本次自己登录时间内的所有聊天记录,最大程度上避免产生越权操作
  6. 用户能够共享文件、图片,发送消息时系统会自动识别超链接

Weakness(fix)

  1. 通信过程未加密,将会在之后的版本进行修改
  2. 用户登录、注册未使用验证码,存在用户密码被碰撞的危险
  3. 暂不支持https,将在之后的版本加入
  4. 用户不能修改密码,首次登陆的密码作为用户今后的密码

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

enter image description here

enter image description here

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

Thanks

  • Aaron Swartz 向你致敬

Contributors

  • Phithon - 努力追逐大牛的小白