发新话题
打印

用java 的httpclient发帖,提交连接是什么?

本主题由 CS1.3 于 2007-12-17 13:39 提升

用java 的httpclient发帖,提交连接是什么?

用java 的httpclient发帖,提交连接是什么?比如我提交到post.php?action=newthread&fid=4&extra=page%3D1&topicsubmit=yes这个地方,论坛返回说地址来源不正确,应该是怎么提交?

[ 本帖最后由 hgcs 于 2007-12-15 21:34 编辑 ]

TOP

dz本身应该有来路保护的.防止外部恶意提交

具体我也不清楚是什么~
看看common.inc.php等核心文件里是怎么处理提交的
这家伙很懒,什么也没留下.

TOP

include/global.func.php
复制内容到剪贴板
代码:
function submitcheck($var, $allowget = 0, $seccodecheck = 0, $secqaacheck = 0) {
        if(empty($GLOBALS[$var])) {
                return FALSE;
        } else {
                global $_SERVER, $seccode, $seccodeverify, $secanswer, $_DCACHE;
                if($allowget || ($_SERVER['REQUEST_METHOD'] == 'POST' && $GLOBALS['formhash'] == formhash() && (empty($_SERVER['HTTP_REFERER']) ||
                        preg_replace("/https?:\/\/([^\:\/]+).*/i", "\\1", $_SERVER['HTTP_REFERER']) == preg_replace("/([^\:]+).*/", "\\1", $_SERVER['HTTP_HOST'])))) {
                        if($seccodecheck) {
                                $tmp = $seccode{0};
                                seccodeconvert($seccode);
                                if(strtoupper($seccodeverify) != $seccode) {
                                        showmessage('submit_seccode_invalid');
                                }
                                $seccode = random(6, 1) + $tmp * 1000000;
                        }
                        if($secqaacheck) {
                                require_once DISCUZ_ROOT.'./forumdata/cache/cache_secqaa.php';
                                if(md5($secanswer) != $_DCACHE['secqaa'][substr($seccode, 0, 1)]['answer']) {
                                        showmessage('submit_secqaa_invalid');
                                }
                                $seccode = random(1, 1) * 1000000 + substr($seccode, -6);
                        }
                        return TRUE;
                } else {
                        showmessage('submit_invalid');
                }
        }
}
改为
复制内容到剪贴板
代码:
function submitcheck($var, $allowget = 0, $seccodecheck = 0, $secqaacheck = 0) {
        if(empty($GLOBALS[$var])) {
                return FALSE;
        } else {
                global $_SERVER, $seccode, $seccodeverify, $secanswer, $_DCACHE;
                        if($seccodecheck) {
                                $tmp = $seccode{0};
                                seccodeconvert($seccode);
                                if(strtoupper($seccodeverify) != $seccode) {
                                        showmessage('submit_seccode_invalid');
                                }
                                $seccode = random(6, 1) + $tmp * 1000000;
                        }
                        if($secqaacheck) {
                                require_once DISCUZ_ROOT.'./forumdata/cache/cache_secqaa.php';
                                if(md5($secanswer) != $_DCACHE['secqaa'][substr($seccode, 0, 1)]['answer']) {
                                        showmessage('submit_secqaa_invalid');
                                }
                                $seccode = random(1, 1) * 1000000 + substr($seccode, -6);
                        }
                        return TRUE;
        }
}

TOP

发新话题