Heim  >  Artikel  >  Backend-Entwicklung  >  So verhindern Sie, dass Ihre Website von Registrierungsmaschinen bombardiert wird

So verhindern Sie, dass Ihre Website von Registrierungsmaschinen bombardiert wird

WBOY
WBOYOriginal
2016-09-19 09:16:281556Durchsuche

Der aktuelle Schutz besteht aus der Verifizierung des Mobiltelefons und des Tokens. Der Registrierungsautomat registriert alle leeren Nummern, aber ich kann den Verifizierungscode auch einmal pro Stunde erhalten.

Antwortinhalt:

Der aktuelle Schutz besteht aus der Verifizierung des Mobiltelefons und des Tokens. Der Registrierungsautomat registriert alle leeren Nummern, aber ich kann den Verifizierungscode auch einmal pro Stunde erhalten.

Ich kann nicht sehr gut Chinesisch und kann die Fragen nicht verstehen!

Ich habe schon einmal eines für einen Freund geschrieben. Sie haben ein Programm zur Generierung von Bestätigungscodes verwendet, das sie online gefunden haben. Ich schätze, zu viele Leute haben es verwendet und sie haben es nicht verhindert. Ich persönlich bevorzuge JS, um Probleme zu lösen. Nachdem ich diese Lösung endlich verwendet habe, gab es keine Probleme mehr.

TokenCode verhindert, dass Roboter die Registrierung der Übermittlungsmethode simulieren
TokenCode verwendet ein Demo-Skript

<code><?php
    #=====================================================================
    #=                 Copyright (c) 2015 猫七(QQ:77068320)              =
    #=                      All rights reserverd.                        =
    #=====================================================================
    #=           TokenCode 防模拟提交程序 类(PHP版本)                    =
    #=  使用说明:http://www.miaoqiyuan.cn/products/tokencode/last.zip   =
    #=  演示地址:http://www.miaoqiyuan.cn/products/tokencode/           =
    #=  使用说明:http://www.miaoqiyuan.cn/p/tokencode                   =
    #=  邮箱地址:mqycn@126.com   QQ:77068320 1301425789                =
    #=====================================================================
     
    class TokenCode {
        public $value, $code ;
        public $OperationList;
        public function __construct() {
            $resultValue = $this -> RandomKey($this -> RandomIntger());
            $resultCode = "'" . $resultValue . "'";
            $this -> OperationList = Array("+", "-" ,"*");
             
            for( $i = 0 ; $i < $this -> RandomIntger() + 3; $i++){
                $op =  $this -> RandOperation();
                switch($op){
                    case "+":
                    case "-":
                        $random = $this -> RandEquations();
                        $resultValue .= $random["value"];
                        $resultCode .= "+(" . $random["code"] . ")";
                        break;
                    default:
                        $random = $this -> RandomKey($this -> RandomIntger());
                        $resultValue .= $random;
                        $resultCode .= "+'" . $random . "'";
                        break;
                }
            }
             
            $rnd1 = $this -> RandomIntger();
            $rnd2 = $this -> RandomIntger() + 8;
            $this -> value = substr($resultValue, $rnd1, $rnd2);
            $this -> code = "(" . $resultCode . ").substring(" . $rnd1 . "," . ($rnd1 + $rnd2) . ")";
        }
         
        private function RandEquations(){
            $va = $str = $this -> RandomLong();
            $this -> OperationList = Array("+", "-" ,"*");
             
            for( $i = 0 ; $i < $this -> RandomIntger(); $i++){
                $op =  $this -> RandOperation();
                $vb = $this -> RandomLong();
                switch($op){
                    case "+":
                        $va += $vb;
                        $str .= "+" . $vb;
                        break;
                    case "-":
                        $va -= $vb;
                        $str .= "-" . $vb;
                        break;
                    case "*":
                        $va *= $vb;
                        $str = "(" . $str . ")*" . $vb;
                        break;
                }
            }
            return Array(
                "code" => $str,
                "value" => $va
            );
        }
         
        private function RandOperation(){
            return $this -> OperationList[rand() % count($this -> OperationList)];
        }
         
        private function RandomIntger(){
            return (int)substr(rand(), 1, 1) + 1;
        }
         
        private function RandomLong(){
            return (int)substr(rand(), 1, 3) + 1;
        }
         
        private function RandomKey($len = 10){
            return substr(md5(rand()), 1, $len + 5);
        }
         
    }
?>
</code>

Aufrufmethode:

<code><?php
    require("TokenCode.php");
    $token = new TokenCode();
    $tokenValue = $token -> value ;
    $tokenCode = $token -> code ;
         
    //代码段
        $_SESSION["_TOKENCODE"] = $token -> value ;
         
    //代码段
    echo '<script type="text/javascript">_TOKENCODE=' . $token -> code . ';</script>';
?></code>

Gehen Sie nach dem Speichern der Sitzung zur Überprüfungsseite, um den übermittelten Code und die Überprüfungsergebnisse zu überprüfen. Es gibt nur sehr wenige Programmänderungen und Sie müssen nur die js ändern.

<code>#AJAX方式
$.post("/", {mob : $("#mob").val() , token : _TOKENCODE }, function(){ } );
 
#URL方式
$("#send").click(function(){
    if(this.href.indexOf('&token=')==-1){
        this.href+='&token=' + _TOKENCODE
    };
});</code>

IP-Einschränkungen plus hochsicherer Verifizierungscode

Haben Sie sich mit einer virtuellen Nummer registriert?

Alle registrierten Registrierungsmaschinen sind leere Nummern, aber ich kann den Bestätigungscode erhalten

Könnten Sie bitte erklären, was für ein Registrierungsgerät das ist und was für eine Mobiltelefonnummer es ist?

Die Methode, an die ich gedacht habe
Methode 1. Fügen Sie bei der Registrierung eine weitere Überprüfungsebene hinzu, z. B.: 12306-Bildauswahl, Taobaos Schiebemodul-Hintergrundbild
Methode 2. Fügen Sie biometrische Erkennung hinzu, z. B. Gesichtserkennung, Lippe Bewegungserkennung, der Benutzer wird tatsächlich erst erstellt, nachdem die biometrische Erkennung bestanden wurde,

Die inländische WeBank hat in ihrer App die Liveness-Erkennungstechnologie verwendet. Diese Technologie wird derzeit jedoch hauptsächlich in Szenarien mit relativ hohen Sicherheitsanforderungen eingesetzt und dient nur als Hilfsmittel zur Hilfsüberprüfung und ist nicht zu 100 % abhängig, kurz gesagt Wirkung ist immer noch gut.

Geben Sie den Bestätigungscode ein oder fügen Sie IP-Einschränkungen hinzu. Dieselbe IP kann nicht kontinuierlich registriert werden

Ändern Sie die Methode zum Erhalten des Bestätigungscodes.
Verwenden Sie die Spracheingabe, um den Bestätigungscode abzurufen. Nachdem Sie die Mobiltelefonnummer auf der Webseite eingegeben haben, können Sie über die Anrufplattform einen Sprachanruf an den Besitzer des Telefons tätigen.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn