今天没事瞎点  点到 凤凰网的一个链接了  http://yue.ifeng.com/y/detail_2011_12/07/11160676_0.shtml评论框 内容是 :文明上网,登陆评论! 直接点按钮 js alert  请填写评论内容 再点一下文本框 文本框内容变成:请您先登录,再发布评论。再点按钮 就提交了打开的页面中的最新评论里就有了。然后我就复制了部分html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html"; charset="utf-8">
</head>
<body>
<form method="post" target='_blank' action="http://comment.ifeng.com/post.php" id="commentForm" name="commentForm">
<textarea onclick="changeBox();" class="" cols="50" rows="10" id="content" name="content">bbbbbbbbbbb</textarea>
<input type="hidden" value="11160676" name="docId">
<input type="hidden" value="吴卓羲女友张馨予家中大尺度内衣自拍照火辣曝光" name="docName">
<input type="hidden" value="http://yue.ifeng.com/y/detail_2011_12/07/11160676_0.shtml" name="docUrl">
<input type="hidden" value="21202" name="chId">
<input type="submit" style="margin-left:20px; display:inline" value="xxxxxxxxxxxx" >
</form>
</body>
</html>提交了就有了。
然后想到用curl post 模拟form的效果 但是没试成功 可能是 少了一些东西header("content-type:text/html;charset:utf-8;");
/*
chId 21202
content mmmmmmmmm
docId 11160676
docName 吴卓羲女友张馨予家中大尺度内衣自拍照火辣曝光
docUrl http://yue.ifeng.com/y/detail_2011_12/07/11160676_0.shtml
*/
  $url = "http://comment.ifeng.com/post.php";
   //$url = "http://localhost/php/index.php";
  $data = array(
'content'=>'xxxxxxxxxxoooooooooooo',
'docId'=>11160676,
'docName'=>'吴卓羲女友张馨予家中大尺度内衣自拍照火辣曝光',
'docUrl'=>'http://yue.ifeng.com/y/detail_2011_12/07/11160676_0.shtml',
'chId'=>21202
);
 
$ret = http_post($url,$data);
var_dump($ret);function http_post($url, $data)
 {
     $ch = curl_init();        
     curl_setopt($ch, CURLOPT_HEADER,1);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

     curl_setopt($ch, CURLOPT_URL, $url);
     curl_setopt($ch, CURLOPT_POST, 1);
     $data = http_build_query($data);
     curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
 
 curl_setopt($ch, CURLOPT_REFERER, "http://yue.ifeng.com/y/detail_2011_12/07/11160676_0.shtml");
 $cookie = "userid=1323532473389_2814";
 curl_setopt($ch, CURLOPT_COOKIE, $cookie);
 
     $rs = curl_exec($ch);
     curl_close($ch);
     return $rs;
 }
碰到的问题是:
1.评论的东西 人的头像跟其他不一样 是灰色的   正常的是银灰的。我换了浏览器 打开链接 没看到 灌水的内容 然后我用firebug 的firecookie插件看了一下 cookie 发现有 userid 和 cmtids  没灌水一个 cmtids 就多一个http://comment.ifeng.com/view.php?doc_url=http%3A%2F%2Fyue.ifeng.com%2Fy%2Fdetail_2011_12%2F07%2F11160676_0.shtml&doc_name=%E5%90%B4%E5%8D%93%E7%BE%B2%E5%A5%B3%E5%8F%8B%E5%BC%A0%E9%A6%A8%E4%BA%88%E5%AE%B6%E4%B8%AD%E5%A4%A7%E5%B0%BA%E5%BA%A6%E5%86%85%E8%A1%A3%E8%87%AA%E6%8B%8D%E7%85%A7%E7%81%AB%E8%BE%A3%E6%9B%9D%E5%85%89&ishot=no我清理cookie 刷新页面 cookie出现 userid = 1323533123324_5513
用上面的html提交一下 就出现 cmtids = 45583  再来一次 cmtids = 45583_45612
清理cookie 就没了 2.为啥要暂存这样的评论呢?既然是要登录后才能评论js没判断好到最新评论页显示了个假的?小弟才疏学浅,没事瞎捣鼓了一下,望各位大侠帮忙分析一下嘎嘎

解决方案 »

  1.   

    刚去看一下 
    好像没登录的 发表的还是显示 只是要过一段时间 估计有计划任务在跑吧
    我之前发的一些  “搞死你。” 的头像好像变成银灰色了 也就是正常显示了
    那些 mmmmmm   nnnnnnnnn  bbbbbbbb 估计被排掉了那如果是这样的话,如果把curl post 模拟表单动作弄好了  写个循环 10万次(或者死循环。。) 那情况是不是不太好?
      

  2.   

    刚去看了一下,还真是直接就提交了,这个网站也真是够宽松的……如果 curl 直接提交不被接受的话,那很有可能服务器端还是有一些额外的要求(比如特定的 cookie 啥的),建议在网页提交的时候查看一下 HTTP 数据流,然后用 curl 模拟得充分一点,应该能搞定。
    ————————————————————————————————
    基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
      

  3.   

    有两种方式是不能破的!一是对方有黑名单制! 对方服务器也耗资源;二是充分利用curl与浏览器的区别; 其他的三是对form设置token. 提交时要验证这个。验证码也能挡你一下。