2012年5月

Discuz X2.5 禁止会员修改邮箱

默认只要有密码就可以修改邮箱,很不安全。

修改文件:
template\default\home\spacecp_profile.htm

查找
<input type="text" name="emailnew" id="emailnew" value="$space[email]" class="px" />
复制代码
替换成
<input type="text" name="emailnew" id="emailnew" value="$space[email]" disabled />
复制代码
这样修改之后,发现修改邮箱的编辑框就不可用了,无法修改邮箱。

但是这样真的够了么?
这个方法只是从前端屏蔽往编辑框输入邮箱,但是我们完全可以用firebug之类工具修改编辑框的属性 ,把disabled属性去掉,就可以正常编辑了;甚至可以直接伪造数据包发给服务器,服务器端会乖乖给你修改的。

所以如果想彻底防止修改邮箱,必需在服务器端也做限制,具体方法:

修改文件:source\include\spacecp\spacecp_profile.php

查找
$emailnew = dhtmlspecialchars($_GET['emailnew']);
复制代码
替换为:
$emailnew = $_G['member']['email'];
复制代码
注意记得备份好原始文件。

 

本文转自Discuz 论坛。

解决TIME_WAIT过多问题

如发现系统存在大量TIME_WAIT状态的连接,通过调整内核参数解决,
vim /etc/sysctl.conf
编辑文件,加入以下内容:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
然后执行 /sbin/sysctl -p 让参数生效。

net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_fin_timeout 修改系?默认的 TIMEOUT 时间

Nginx No input file specified. 设置成指定404页面

fastcgi_intercept_errors

syntax: fastcgi_intercept_errors on|off

default: fastcgi_intercept_errors off

context: http, server, location

这个指令用来决定是否要把客户端转向4xx和5xx错误页,或允许Nginx自动指定错误页页。

注意:你需要在此明确错误页,它才是有用的。Igor 曾说:“如果没有定制的处理机制,Nginx不会拦截一个没有缺省页的错误。Nginx 只会拦截一些小的错误,放过其他一些。

在nginx.conf   http区添加

fastcgi_intercept_errors on;

默认他是关闭的。

在server添加

error_page 404 = /404.html;

 

重启nginx完成。

 

debian/ubuntu 服务器安装Dropbox

Debian

32-bit:

cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86" | tar xzf -

64-bit:

cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -

Next, run the Dropbox daemon from the newly created .dropbox-dist folder.

~/.dropbox-dist/dropboxd

Ubuntu如果出错

  1. cd ~ && wget -O - "http://www.dropbox.com/download?plat=lnx.x86" | tar xzf -
  2. --2012-05-14 08:53:48--  http://www.dropbox.com/download?plat=lnx.x86
  3. Resolving www.dropbox.com... 199.47.217.171, 199.47.216.170, 199.47.216.171, ...
  4. Connecting to www.dropbox.com|199.47.217.171|:80... connected.
  5. HTTP request sent, awaiting response... 302 FOUND
  6. Location: https://www.dropbox.com/download?plat=lnx.x86 [following]
  7. --2012-05-14 08:53:48--  https://www.dropbox.com/download?plat=lnx.x86
  8. Connecting to www.dropbox.com|199.47.217.171|:443... connected.
  9. ERROR: cannot verify www.dropbox.com's certificate, issued by `/C=US/O=Thawte, Inc./CN=Thawte SSL CA':
  10.   Unable to locally verify the issuer's authority.
  11. To connect to www.dropbox.com insecurely, use `--no-check-certificate'.
  12. gzip: stdin: unexpected end of file
  13. tar: Child returned status 1
  14. tar: Error is not recoverable: exiting now

使用以下指令安装

32-bit:

cd ~ && wget -O - http://www.dropbox.com/download/?plat=lnx.x86 --no-check-certificate | tar xzf -

64-bit:

cd ~ && wget -O - https://www.dropbox.com/download?plat=lnx.x86_64 --no-check-certificate | tar xzf -

                

debian/ubuntu 桌面安装dropbox

下载官方最新版客户端

dpkg -i  dropbox_1.4.0_i386.deb (根据自己下载的文件名称)

如果提示依赖没有安装

apt-get -f install 选择Y 安装所有依赖

再运行dpkg -i  dropbox_1.4.0_i386.deb

完成安装

 

如果安装了所有依赖提示依赖版本太低  可以使用以下方法解决

解开

~# dpkg-deb -x dropbox_1.4.0_i386.deb tmpdir (注:版本不一样,文件名也不一样)

~# dpkg-deb --control  dropbox_1.4.0_i386.deb  tempdir/DEBIAN

编辑

nano tmpdir/DEBIAN/control

删除Depends:。。。这行

CTRL+X保存 Y 回车

打包

dpkg -b tmpdir/ dropbox_debian.deb

给予可执行权限

chmod +x dropbox_debian.deb

安装
dpkg -i dropbox_debian.deb