- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > IT-Security Forum > IT-Security
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


IT-Security Alles rund um IT-Security aus den Bereichen Hard- und Software

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 26-01-2016, 12:39
sanktusm
 Registrierter Benutzer
Links : Onlinestatus : sanktusm ist offline
Registriert seit: Aug 2005
Beiträge: 608
sanktusm zeigte ein beschämendes Verhalten in der Vergangenheit
Standard Hacker Angriff?

Hallo,
jemand postet derzeit immer wieder folgende Nachricht:
Zitat:
TliyWc <a href=\"http://zoqrqnyefkvp.com/\">zoqrqnyefkvp</a>, sfrathtxqbnk, [link=http://shnndgkqtmyv.com/]shnndgkqtmyv[/link], http://qpvcjszpdzxi.com/
Kann das ein Hackerangriff sein?

Geändert von sanktusm (26-01-2016 um 12:42 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 26-01-2016, 13:50
ArneDrews
 Registrierter Benutzer
Links : Onlinestatus : ArneDrews ist offline
Registriert seit: Jan 2016
Beiträge: 25
ArneDrews befindet sich auf einem aufstrebenden Ast
Standard

Muß es denn immer gleich ein Hacker sein?!
Das ist stinknormaler Spam. Kommen die Eingaben über ein Formular? Dann ist der nicht ausreichend gegen SpamBots geschützt!
Mit Zitat antworten
  #3 (permalink)  
Alt 05-02-2016, 20:43
Benutzerbild von ibor ibor
 Registrierter Benutzer
Links : Onlinestatus : ibor ist offline
Registriert seit: Jan 2013
Beiträge: 58
ibor befindet sich auf einem aufstrebenden Ast
Cool

So,

nur kurz, ich habe n coolen code geschrieben um Spam zu vermeiden - falls du genug hast von captchas usw. -> verwende doch meine Botstop PHP Klasse PHP Bot Protection: Detection of bot users asking predefined questions - PHP Classes

Dies ist als reine Hilfestellung gedacht!

Und außerdem ist die Klasse kostenlos!


Gruß Robert
__________________
Immer eine Handbreit Puffer unterm Code
Mit Zitat antworten
  #4 (permalink)  
Alt 06-02-2016, 05:51
mermshaus
 Registrierter Benutzer
Links : Onlinestatus : mermshaus ist offline
Registriert seit: Jun 2009
Beiträge: 393
mermshaus wird schon bald berühmt werden
Standard

OT:

Zitat:
You need to be a registered user and login to get this file.

[…]

The registration requirement is an option of the package author. This package has that option set.
Ich fand den Gedanken hinter phpclasses.org ja immer gut, aber die Seite ist aus Nutzersicht sooo nervtötend. (Ich wollte nur den Source einsehen.) Und ich glaube, dass das schon Absicht ist. Da gibt es wirklich bessere Optionen, Software zu verbreiten.
Mit Zitat antworten
  #5 (permalink)  
Alt 06-02-2016, 13:01
ArneDrews
 Registrierter Benutzer
Links : Onlinestatus : ArneDrews ist offline
Registriert seit: Jan 2016
Beiträge: 25
ArneDrews befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

Ich rate dem TE und anderen davon ab, die Klasse zu verwenden.

Ein paar Gründe von vielen:
  • offensichtliche HTTP-Header-Probleme werden mit @ eleminiert
  • include des Fragen-Katalogs im Konstruktor
  • Sind Fragen/Antworten nicht auch irgendwie Captchas?

Sorry, die Klasse ist m.M.n. allein von der Umsetzung nicht zur Verbreitung zu empfehlen.

Gruß Arne
Mit Zitat antworten
  #6 (permalink)  
Alt 07-02-2016, 17:17
Benutzerbild von ibor ibor
 Registrierter Benutzer
Links : Onlinestatus : ibor ist offline
Registriert seit: Jan 2013
Beiträge: 58
ibor befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von ArneDrews Beitrag anzeigen
Hallo,

Ich rate dem TE und anderen davon ab, die Klasse zu verwenden.

Ein paar Gründe von vielen:
  • offensichtliche HTTP-Header-Probleme werden mit @ eleminiert
  • include des Fragen-Katalogs im Konstruktor
  • Sind Fragen/Antworten nicht auch irgendwie Captchas?

Sorry, die Klasse ist m.M.n. allein von der Umsetzung nicht zur Verbreitung zu empfehlen.

Gruß Arne
Es tut mir sehr Leid aber du bist wahrscheinlich auch einer, der es selbst nicht hinbekommt auf komfortable Art und Weise User von Bots zu trennen!

Wenn du @session_start() meinst? Darfst du drei Mal raten warum?

Kommst wahrscheinlich eh ned drauf!

Ich finds ne rießen Sauerei hier so ein Schwachsinn zu posten -> Sorry aber das Script funktioniert Einwandfrei! 250 Downloads sprechen für sich!!!

So und jetzt muss ich mich erstmal abreagieren!


Robert
__________________
Immer eine Handbreit Puffer unterm Code

Geändert von ibor (07-02-2016 um 19:13 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 07-02-2016, 19:11
Benutzerbild von ibor ibor
 Registrierter Benutzer
Links : Onlinestatus : ibor ist offline
Registriert seit: Jan 2013
Beiträge: 58
ibor befindet sich auf einem aufstrebenden Ast
Standard

So ich will mal Auflösen,

du solltest dir mal das hier ansehen:

https://www.owasp.org/index.php/Full_Path_Disclosure

Deshalb auch @session_start() - denn es gibt viele viele Menschen, die nicht die Möglichkeit haben, diese Meldung abzuschalten!


So und nun viel Spass beim Weiterbilden !


Gruß Robert
__________________
Immer eine Handbreit Puffer unterm Code
Mit Zitat antworten
  #8 (permalink)  
Alt 07-02-2016, 20:59
TBT
  Moderator
Links : Onlinestatus : TBT ist offline
Registriert seit: Sep 2002
Ort: Berlin
Beiträge: 2.787
TBT befindet sich auf einem aufstrebenden Ast
TBT eine Nachricht über ICQ schicken TBT eine Nachricht über AIM schicken TBT eine Nachricht über Yahoo! schicken
Standard

Ehe du hier so nen Aufstand machst, nutze das session_start doch mal richtig.
Das @ brauchst du nicht, wenn die Session noch nicht gestartet ist und noch keine Header gesendet wurden.

Beides! kann man ordentlich abfragen:
PHP-Code:
if( session_status() == PHP_SESSION_NONE && ! headers_sent() ) {
    
session_start();

__________________
TBT

Die zwei wichtigsten Regeln für eine berufliche Karriere:
1. Verrate niemals alles was du weißt!


PHP 2 AllPatrizier II Browsergame
Mit Zitat antworten
  #9 (permalink)  
Alt 08-02-2016, 00:39
mermshaus
 Registrierter Benutzer
Links : Onlinestatus : mermshaus ist offline
Registriert seit: Jun 2009
Beiträge: 393
mermshaus wird schon bald berühmt werden
Standard

Ehrlich gesagt: Solche Themen sind immer extrem knifflig bis gar nicht sinnvoll zu behandeln, wenn man dazu auch noch von einem Anwender ausgeht, der so unbedarft ist, dass er sich zu einem x-beliebigen Zeitpunkt was im global state zerschießt (Session-Gedöns kann von überall aus dem Code manipuliert werden) und dass er dazu noch davor bewahrt werden soll, dabei Fehlermeldungen zu produzieren.

Es lohnt eigentlich nicht, das überhaupt zu versuchen.

Wobei es aber natürlich auch nicht verkehrt ist, am Anfang seines Codes mal ein, zwei „Stecker drin?“-Checks zu machen. Wobei da dann wieder die Frage ist, was man bei einem Fehler tut? Man kann ja zum Beispiel keine Exception werfen, wenn man davon ausgeht, dass der Anwender die möglicherweise nicht fängt und dadurch dann Server-Pfade an Besucher gelangen. Wie gesagt: So richtig „tragfähig“ ist der Ansatz nicht, auf so was Rücksicht zu nehmen.



Wie sollte man es hier konkret machen?

Hängt von der eigenen Philosophie ab. Aus Designsicht unterliegt es sicherlich nicht der Zuständigkeit dieser Klasse, Sessions zu starten. Verträglicher für die Hobbybastler ist es vielleicht schon, ihnen die Session kurz zu starten, wenn sie es nicht gemacht haben, aber… Ich tue mich schwer damit. Der Anwender lernt halt auch nichts, wenn man ihn immer durchs ganz seichte Wasser schippert. Und, na ja, ein paar Grundlagen sollte man schon lieber wissen, wenn man als Anwender am Ende „eigenen“ Code ins Web stellt.

Wäre es bei phpclasses.org möglich und wäre die Lizenz des Projekts nicht so inkompatibel, hätte ich dir wahrscheinlich einen Pull-Request geschickt.



Letztlich sind es aber auch nur ~40 Zeilen Code. Das ist so kurz, dass sich ein stundenlanges Reflektieren und Diskutieren im Grunde nicht lohnt.
Mit Zitat antworten
  #10 (permalink)  
Alt 08-02-2016, 21:37
Benutzerbild von ibor ibor
 Registrierter Benutzer
Links : Onlinestatus : ibor ist offline
Registriert seit: Jan 2013
Beiträge: 58
ibor befindet sich auf einem aufstrebenden Ast
Standard

Hallo zusammen,

vielen Dank für eure konstruktive Kritik - ich werde es mir merken und dann evtl. was am Script ändern

vielen Dank!



Gruß Robert!

PS: Ich wüsste auch nicht, warum, wenn im Konstruktor ein include Befehl steht, die Klasse nicht verwendbar wäre?
__________________
Immer eine Handbreit Puffer unterm Code

Geändert von ibor (08-02-2016 um 21:40 Uhr)
Mit Zitat antworten
  #11 (permalink)  
Alt 08-02-2016, 22:51
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.419
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von ibor Beitrag anzeigen
Ich wüsste auch nicht, warum, wenn im Konstruktor ein include Befehl steht, die Klasse nicht verwendbar wäre?
Ich darf den Code nicht ansehen, weil ich keinen phpclasses.org-Account habe, deswegen nur eine allgemeine Antwort: Prinzipiell sollte eine Klasse alle ihre benötigten Daten im Konstruktor als Parameter übergeben bekommen und sie sich nicht selber beschaffen.

Geändert von h3ll (08-02-2016 um 22:55 Uhr)
Mit Zitat antworten
  #12 (permalink)  
Alt 08-02-2016, 23:58
Benutzerbild von ibor ibor
 Registrierter Benutzer
Links : Onlinestatus : ibor ist offline
Registriert seit: Jan 2013
Beiträge: 58
ibor befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

ja das mag ja sein, aber deswegen stellt man nicht die Funktionsweise des ganzen Scripts in Frage :/

An alle, die sich die Klasse nicht downloaden können, hier der Link http://blog.beran-solutions.de/?wpfb_dl=8

ich bitte sehr darum mir konstruktive Kritik zu geben! Schließlich ist die Ausführung: "Sind Fragen/Antworten nicht auch irgendwie Captchas?" nicht sehr Hilfreich

Gruß
Robert
__________________
Immer eine Handbreit Puffer unterm Code
Mit Zitat antworten
  #13 (permalink)  
Alt 11-02-2016, 16:29
TBT
  Moderator
Links : Onlinestatus : TBT ist offline
Registriert seit: Sep 2002
Ort: Berlin
Beiträge: 2.787
TBT befindet sich auf einem aufstrebenden Ast
TBT eine Nachricht über ICQ schicken TBT eine Nachricht über AIM schicken TBT eine Nachricht über Yahoo! schicken
Standard

Hallo ibor,
habe dir mal einige Anmerkungen riengeschrieben

PHP-Code:
<?php

/**
 * Description of botstop_class
 *
 * @author burncycle
 */
class botstop_class {

    
// was soll das public hier?
    // diese Member sollten privat sein
    
public $file "answers_questions.php";
    public 
$question "";
    public 
$answer "";
    public 
$lang "de";

    
// der Konstruktor sollte die Fragen und Antworten als
    // Parameter erhalten und selbst kein include machen
    
public function __construct() {

        
// das @ entfernen und sesion_start mit einer Bedingung umschliessen
        
@session_start();

        
// siehe Methodenhinweis
        
include($this->file);

        
$rand rand0count$question[$this->lang] ) - );

        
$this->question $question[$this->lang][$rand];
        
$this->answer $answer[$this->lang][$rand];
    }

    
// keinerlei Funktion, $this->file wird außer im Konstruktor
    // nicht genutzt
    
public function set_file$file ) {

        
$this->file $file;
    }

    public function 
get_question() {

        
$_SESSION["answer"] = $this->answer;

        return 
$this->question;
    }

    public function 
is_correct$answers ) {

        
// Prüfung ob der array Index existiert fehlt
        
if( !empty( $_SESSION["answer"] ) ) {

            
// warum einfache Stringvergleiche mit aufwenigen RegExp?
            // diesen ganzen If Zweig kann man durch einfaches
            //
            // return in_array( strtolower( $answers ), explode( "|", strtolower( $_SESSION["answer"] ) ) );
            //
            // ersetzen

            
$answerss explode"|"$_SESSION["answer"] );


            if( 
count$answerss ) > ) {
                
                foreach( 
$answerss as $value ) {

                    if( 
$bool preg_match"/".preg_quote$value"/" )."/i"$answers ) ) {

                        break;
                    }
                }
            } else {

                
$bool preg_match"/".preg_quote$_SESSION["answer"], "/" )."/i"$answers );
            }

            
// einfach "return $bool;" statt dem if/else
            
if( $bool == true ) {

                return 
true;
            } else {

                return 
false;
            }
        } else {

            
// warum soll der User Cookies aktivieren - unnötig
            // außerdem sollte die Klasse keine Ausgabe machen,
            // sondern dem umliegen Skript einen entsprechenden Fehler
            // zurückgeben
            
echo "Please Activate Cookies to submit botstop!";

            return 
false;
        }
    }

}
__________________
TBT

Die zwei wichtigsten Regeln für eine berufliche Karriere:
1. Verrate niemals alles was du weißt!


PHP 2 AllPatrizier II Browsergame
Mit Zitat antworten
  #14 (permalink)  
Alt 12-02-2016, 00:48
mermshaus
 Registrierter Benutzer
Links : Onlinestatus : mermshaus ist offline
Registriert seit: Jun 2009
Beiträge: 393
mermshaus wird schon bald berühmt werden
Standard

(Sorry, wird etwas offtopic/meta. Ich finde das Thema recht spannend.)

Ich stimme den Anmerkungen zu. Der Vollständigkeit halber noch ein, zwei Ergänzungen.

Zitat:
Zitat von TBT
PHP-Code:
        // Prüfung ob der array Index existiert fehlt
        
if( !empty( $_SESSION["answer"] ) ) { 
Technisch gesehen prüft empty das selbst.

Zitat:
PHP-Code:
            // warum einfache Stringvergleiche mit aufwenigen RegExp?
            // diesen ganzen If Zweig kann man durch einfaches
            //
            // return in_array( strtolower( $answers ), explode( "|", strtolower( $_SESSION["answer"] ) ) );
            //
            // ersetzen 
Die preg_match-Aufrufe im Originalcode sind nicht verankert (etwa per ^…$ oder – richtiger – \A…\z). Sie verhalten sich dadurch eher wie strpos als wie ==. Das ist aber wahrscheinlich gar nicht so gewünscht, und deine Variante wäre auch noch ein Bugfix.

Zitat:
PHP-Code:
            // einfach "return $bool;" statt dem if/else
            
if( $bool == true ) {

                return 
true;
            } else {

                return 
false;
            } 
return (bool) $bool;

preg_match liefert einen Integer.

Im gesamten Code fehlen zudem noch einige Fehlerüberprüfungen, wenn man es eng sieht.



Funktional ist der Code wohl recht genau das hier:

PHP-Code:
class botstop_class
{
    public function 
get_question($dataFile 'answers_questions.php'$lang 'de')
    {
        @
session_start();

        require 
__DIR__ '/' $dataFile;

        
$rand rand(0count($questions[$lang]) - 1);

        
$_SESSION["answer"] = $answers[$lang][$rand];

        return 
$questions[$lang][$rand];
    }

    public function 
is_correct($answer)
    {
        @
session_start();

        if (empty(
$_SESSION["answer"])) {
            echo 
"Please Activate Cookies to submit botstop!";
            return 
false;
        }

        return 
in_array(
            
strtolower($answer),
            
explode("|"strtolower($_SESSION["answer"]))
        );
    }

Die Klasse braucht im Grunde gar keinen Zustand zu halten (Instanzvariablen).

Um diese Kürze geht es mir, wenn ich sage, dass es sich nicht „lohnt“, das wirklich groß zu besprechen, weil es einfach sehr wenig tut. Da kann man irgendwie immer alles und nichts anmerken, und es wird etwas willkürlich, auf Basis welches Anspruchs man das tut.

Man könnte zum Beispiel kritisieren, dass der Code nicht prüft, ob eine Sprache vorhanden ist und ob $questions und $answers die gleiche Feld-Größe und die passenden Datentypen haben (oder überhaupt gesetzt sind). Zudem wird nicht geprüft, ob die Datei mit den Fragen und Antworten überhaupt existiert und lesbar ist. Dann ist die Fehlerunterdrückung mit @ natürlich nicht toll, und man sollte auch nicht einfach so auf $_SESSION zugreifen, sondern das besser irgendwie kapseln (um verdeckte Seiteneffekte zu vermeiden und um vielleicht die Werte einfach mit einem Namespace ($_SESSION['myproject']['antwort']) versehen zu können).

Aber das wäre dann sehr schnell ein völlig anderes Projekt und nicht mehr die kleine Lösung, die vermutlich für viele Anwender ausreicht, auch wenn sie nicht in dem Sinne „gut“ ist.

Andererseits ist konstruktive Kritik natürlich auch nicht verkehrt und oft sicherlich auch hilfreich.

Geändert von mermshaus (12-02-2016 um 01:02 Uhr)
Mit Zitat antworten
  #15 (permalink)  
Alt 12-02-2016, 20:13
Benutzerbild von ibor ibor
 Registrierter Benutzer
Links : Onlinestatus : ibor ist offline
Registriert seit: Jan 2013
Beiträge: 58
ibor befindet sich auf einem aufstrebenden Ast
Angry

hmm,

es scheint, als würden die Leute viel Wirbel um nix in die Höhe zu heben!
Und mal ehrlich, zeigt mir doch Mal ein Script von euch!
Dann reden wir hier erst weiter

Wie gesagt - das was ihr da bemengelt betrifft FORMFEHLER - dies ändert NICHTS an der Funktionalität des Scripts! Ich nehme die Kritik an aber teilweise, wie gesagt wird hier aus ner Mücke n Elefant gemacht...

Aso ja ... hier ist auch nicht alles gut Programmiert

Viele viele Bugs - und man sollte übrigens bevor man andere, wegen des Gleichen Kritisiert, vor seiner EIGENEN Türe kehren!


AU revoir!
ibor
__________________
Immer eine Handbreit Puffer unterm Code
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Angriff auf JOOMLA php69 ASP, PERL, CGI, C und alles andere 11 14-09-2006 13:45
Angriff auf Forum rossixx IT-Security 1 18-10-2005 19:46
PHP - MYSQL - Sicherheit vor Angriff StilgarBF SQL / Datenbanken 2 02-10-2004 08:16
Angriff auf SQL-Datenbank ... Innuendo BRAINSTORMING PHP/SQL/HTML/JS/CSS 40 07-06-2004 20:51
angriff über port 80??? Rasta IT-Security 7 04-12-2002 21:12

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Multi-Branchen-Marktplatzsoftware 7.2.2 veröffentlicht
Multi-Branchen-Marktplatzsoftware 7.2.2 veröffentlichtDie Software ebiz-trader steht in der Version 7.2.2 zur Verfügung.

28.10.2016 | Berni

Zeit ist Geld, PC einfach selbst reparieren!
Zeit ist Geld, PC einfach selbst reparieren!Wenn der PC nicht richtig läuft, wirft sie das in Ihrem Arbeitsalltag meist zurück. Dabei können Sie einige Probleme mit relativ wenig Aufwand und ohne intime Kenntnisse Ihres Rechners selbst lösene

18.04.2016 | Berni


 

Aktuelle PHP Scripte

SMT by palle

Server &Service Monitor Tool AND Server & Service Management Tool SMT wurde von einem Administrator für Administratoren entwickelt. Es soll den Alltag mit verschiedenen Systemen vereinfachen und die richtigen Mitarbeiter über die richtigen Ereignisse b

14.11.2016 palle | Kategorie: PHP
Umfrage-Script - Abstimmen auf Ihrer Webseite ansehen Umfrage-Script - Abstimmen auf Ihrer Webseite

Das Umfrage-Script ist ein PHP-Programm zur online-Befragung oder online-Abstimmung. Es können eine oder mehrere Fragen mit den entsprechenden Auswahlantworten gestellt werden. Die Ergebnisse des Voting werden summiert und können als Balkendiagramm....

13.11.2016 j-hummel | Kategorie: PHP/ Umfragen
MySync MySQL Datenbanksynchronisierung

MySync benötigt keine ODBC-Verbindung, sondern synchronisiert die MySQL Datenbank per FTP und PHP Zugriff. Sie können beliebig viele Jobs definieren, die dann automatisch zeitgesteuert die Daten zwischen der Client und der Webdatenbank abgleichen. Außerde

08.11.2016 bjoern@ | Kategorie: MYSQL/ Database
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:58 Uhr.