HOME HELP 新着記事 ツリー表示 スレッド表示 トピック表示 検索 過去ログ

No10381 の記事


■10381 / )  VOTE COMの連続投稿防止改造について
□投稿者/ 南 -(2005/01/12(Wed) 20:45:12)
    古い記事への返信で申し訳ないのですが
    No10237,10223,10122
    の関連記事にあるように

    votec.cgi412行目 $addr = $ENV{'REMOTE_ADDR'};

    の下に、

    open(IPI,"ip.log");
    while (<IPI>){
    if($_ eq $addr){&er_("二重投票は禁止");}#IPがすでにある場合終わり
    }
    close(IPI);
    if((-M "ip.log") < 1){#更新されてから1日以内ならIP追加
    open(IPO,">>ip.log");
    print IPO $addr;
    close(IPO);
    }else{#更新されて1日以上ならログをフォーマットして追加
    open(IPO,">ip.log");
    print IPO $addr;
    close(IPO);
    }

    と書き込みスクリプトを改造しました。
    試しに複数のアドレスで投票してみると、
    IP1個目は無事規制されip.logにアドレスは追加されるものの、
    2個目以降、IPアドレスが追加されるとIPアドレス規制がなくなってしまいました。
    そうすると、1個目のIPアドレスはもちろん2個目、3個目以降のIPアドレスでも連続
    投稿が可能になってしまいました。
    その時、ip.logを覗いてみると

    「192.168.1.0162.168.1.1255.255.255.201……」

    の様に、IPアドレスが区切りなく連続で1行に記録されていました。

    試しに
    if((-M "ip.log") < 1){
    open(IPO,">>ip.log");
    print IPO $addr;
    print IPO \r\n;
    close(IPO);
    }
    else{#更新されて1日以上ならログをフォーマットして追加
    open(IPO,">ip.log");
    print IPO $addr;
    print IPO \r\n;
    close(IPO);
    }

    と、ログ内で改行させるなどさせてみました
    試したのは(\r\nと\nのみ)
    ですが、改行されるだけで複数のIPアドレスを認知してくれませんでした。

    ip.logに関してはアスキーでアップロードし、属性は666にしています。
    試しにバイナリでアップロードしてみたりしましたが結果は変わりませんでした。

    もしよろしければアドバイスなど頂ければ幸いです。

返信 [メール受信/OFF] 削除キー/


Pass/

HOME HELP 新着記事 ツリー表示 スレッド表示 トピック表示 検索 過去ログ

- Child Tree -