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 - 15: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 - 12: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 - 15: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 - 08: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

  • Rolle erstellen nicht zu finden
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
Weiter

Neue Kommentare

  • Rollen
    vor 1 Tag 9 Stunden
  • Inzwischen sind wir bei
    vor 1 Woche 5 Tagen
  • Migrieren von D7 auf D8/ D10/ D11
    vor 1 Woche 5 Tagen
  • melde mich mal wieder, da ich
    vor 9 Wochen 2 Tagen
  • Hey danke
    vor 9 Wochen 3 Tagen
  • Update: jetzt gibt's ein
    vor 9 Wochen 4 Tagen
  • Hallo, im Prinzip habe ich
    vor 10 Wochen 1 Tag
  • Da scheint die Terminologie
    vor 10 Wochen 2 Tagen
  • Kannst doch auch alles direkt
    vor 10 Wochen 6 Tagen
  • In der entsprechenden View
    vor 10 Wochen 6 Tagen

Statistik

Beiträge im Forum: 250237
Registrierte User: 20464

Neue User:

  • ocvk2810
  • marouane.blel
  • capilclinic

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 40 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