Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

[gelöst] Wie kann ich meine XML RPC Schnittstelle vor Bruteforce (Hacking) schützen?

Eingetragen von Peter2013 (170)
am 20.03.2014 - 16:46 Uhr in
  • Allgemeines zu Drupal
  • Drupal 7.x oder neuer

Hallo ihr,

lasse in meinem default Drupal Script den Hook _xmlrpc() laufen.

Damit mache ich ja eine XML RPC Schnittstelle auf. Dahinter habe ich nun einiges an Funktionen hinterlegt. Ich mache mir da jetzt ein bischen sorgen das jemand mit einer selbst geschriebenen Software einen Bruteforceangriff durchführt und vielleicht useraccount hackt.

habe z.B. eine XMLRPC Funtion:

<?php
function _rep_user_authenticate($username, $password)
{
    try
    {
        return
user_authenticate($username, $password);
    }
    catch (
Exception $e)
    {
       
watchdog('RPC: _rep_user_authenticate', $e->getMessage() );
        return
0;
    }
}
?>

Tja, wenn man da lange genug drauf rumprobiert kriegt man schon das Passwort raus.

Wie kann ich also mein Script/Apache vor solchen Angriffen schützen? Denke da so das die Zugriffe gezählt werden und nur begrent in einer Zeit für User zur Verfügung stehen.

Denke da wird's mit Sicherheit schon fertige Lösungen für geben!?!?!?

Gruß
-Peter

‹ [gelöst] User Account löschen geht nicht wenn E-Mailadresse nicht korrekt! [gelöst] Wie kann ich meine XML RPC Schnittstelle vor Bruteforce (Hacking) schützen? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

so gehts!

Eingetragen von Peter2013 (170)
am 10.04.2014 - 13:53 Uhr

tja, erstmal Danke für eure Hilfe!! :(

für diejenigen die es interessiert wie es geht:

<?php
function HOOK_xmlrpc() {
   
 
// Jeder HTTP auf meinen RPC wird geloggt
 
$ip = ip_address();
 
insert_rpc_access($ip);
  if(
check_drop_connection($ip))
      return
false;

....
}
?>

dazu jetzt noch 2 Funtionen:

<?php
/*
* Der Table muss vorher erstellt werden.
* CREATE TABLE rpcaccess ( ip VARCHAR(15), stempel TIMESTAMP )
*/
function insert_rpc_access($from_ip)
{
   
db_query("INSERT INTO rpcaccess VALUES(:ip,now())", array(':ip' => $from_ip ));
}


function
check_drop_connection($from_ip)
{
   
$data = 0;
       
   
$r = db_query("SELECT COUNT(ip) AS summe FROM rpcaccess WHERE ip=:ip AND stempel BETWEEN (DATE_SUB(NOW(),INTERVAL 10 SECOND)) AND NOW()", array(':ip' => $from_ip));
    foreach(
$r as $result)
    {   
       
$data = $result->summe;
    }
       
        if(
$data>=10)
            return
true;
        else
            return
false;
}
?>

Damit kann man den Server schützen!

Gruß
-Peter ohne Sicherheitslücke

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Peter,sorry aber das

Eingetragen von Hyp1 (1463)
am 10.04.2014 - 16:52 Uhr

Hallo Peter,

sorry aber das was Du da machst, ist gelinde gesagt gar nicht gut.

Um wirklich Sicherheit zu haben solltest Du den XML-RPC Service endpoint von Drupal verwenden,
Da hat es alle Sicherheitsmassnahmen dabei!

So wäre es richtig:

Zitat:

system.connect

gibt dir eine anonyme Session zurück, um sicher zu gehen dass es kein bot ist muss diese nun bei user.login mitgesendet werden.
Das ist gegen DOS Attacken

Zitat:

user.login

gibt Dir die Session eingeloggten user zurück ansonsten Invalid user or Password
Wenn er dreimal falsch einloggt wird er automatisch für eine Zeit gesperrt.
Das ist gegen Brute-Force

Nun hast Du die Session des eingeloggten User, diese sendet Du nun bei allen Deinen aufrufen mit.
Wenn deine xml-rpc z.B: add(int,int) ist solltest Du add(string,int,int) wobei string die mitgesendete user Session ist
und Du prüfst nun immer ob die mitgesendete Session gleich der Session des Users ist.
Das ist gegen nicht authorisierte Zugriffe auf Deine Funktionen!

MfG

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Robert, oh. das muss

Eingetragen von Peter2013 (170)
am 11.04.2014 - 09:35 Uhr

Hallo Robert,

oh. das muss ich mir erstmal ansehen.

Vielen lieben Dank für deine Hilfe.

Gruß

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Top Hair and Dress Choices for Muted Summer & Pale Blonde Coloring
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
Weiter

Neue Kommentare

  • Verwende doch das Tag dafür,
    vor 1 Woche 5 Tagen
  • Guckst du hier: step by step
    vor 1 Woche 4 Tagen
  • Guckst du hier: step by step
    vor 1 Woche 4 Tagen
  • Ich habe ja keine Angst vor
    vor 3 Wochen 7 Stunden
  • Ist grundsätzlichmachbar – aber nichts für „einfach mal schnell“
    vor 3 Wochen 2 Tagen
  • Vielen Dank erst einmal, aber
    vor 3 Wochen 4 Tagen
  • Du hast die "Trusted host
    vor 3 Wochen 4 Tagen
  • Bitte genauer den aktuellen Lösungs-Ansatz beschreiben
    vor 5 Wochen 3 Tagen
  • Git und rsync sind die wichtigsten Werkzeuge
    vor 6 Wochen 2 Stunden
  • Arrrrg. Nix Tabelle :-D /*
    vor 10 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250285
Registrierte User: 20503

Neue User:

  • Marvinkep
  • RobertGocky
  • RandallFloop

» Alle User anzeigen

User nach Punkten sortiert:
wla9464
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 24 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association