php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 23-08-2007, 06:01
Nordin
 Registrierter Benutzer
Links : Onlinestatus : Nordin ist offline
Registriert seit: Aug 2005
Ort: DE / S-A
Beiträge: 415
Nordin befindet sich auf einem aufstrebenden Ast
Standard zu lange ladezeiten bei array mit tausenden datensätzen

Jetzt brauch ich ne gute lösung.

Ich baue da doch an so nen SPAM und Wurmprotector... jetzt hab ich mir in laaanger kleinarbeit bad ips und so zusammen gesucht diese stehen untereinander in einer txt datei.

diese datei lese ich mit file() in ein arry und prüfe ob die REMOTE_ADDR dort existiert...

taja das problem liegt eigentlich auf der hand, es vergehen sekunden bis das array mit den tausenden datensätzen durchlaufen wurde.

Gibt es eine schnellere möglichkeit (ausser mysql - da das tool ja ohne DB läuft)?
Mit Zitat antworten
  #2 (permalink)  
Alt 23-08-2007, 08:03
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

SQLite
shell_exec('grep ...')
Mit Zitat antworten
  #3 (permalink)  
Alt 23-08-2007, 08:26
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Deine Datei anders organisieren. Du könntest zum Beispiel je nach IP-Range eine andere Datei verwenden, so dass diese Datensätze aufgeteilt werden!
Mit Zitat antworten
  #4 (permalink)  
Alt 23-08-2007, 11:27
Flip7
 Registrierter Benutzer
Links : Onlinestatus : Flip7 ist offline
Registriert seit: May 2007
Ort: Munich
Beiträge: 126
Flip7 ist zur Zeit noch ein unbeschriebenes Blatt
Flip7 eine Nachricht über ICQ schicken
Standard

was spricht gegen sowas?

PHP-Code:

$ip 
$_SERVER['REMOTE_ADDR'];
$bad file("addr.txt");

if(
in_array($ip$bad))
  echo 
"BAAAAAAAD";
else
  echo 
"OKAY"
andererseits würde das mit MySQL, wo die IP als Zahl drinnen steht VIIIIEEEL schneller gehen!

SELECT count(*) FROM bad_ips WHERE ip = $ip

1000 Array Einträge sind n Klax!
__________________
Find Parties?
Partysuche
Mit Zitat antworten
  #5 (permalink)  
Alt 23-08-2007, 14:15
Nordin
 Registrierter Benutzer
Links : Onlinestatus : Nordin ist offline
Registriert seit: Aug 2005
Ort: DE / S-A
Beiträge: 415
Nordin befindet sich auf einem aufstrebenden Ast
Standard

Also von dem was ihr mir bis jetzt gepostet habt, kann ich nur in_array() ausprobieren... sofern das schneller als eine while-schleife ist...

MySql ist sicher die beste lösung, aber das kann ich nicht nehmen da ich ja versuche sql-injects zu filtern... da macht es wenig sinn es aus einer DB zu holen da ich ja sonst so wieder eine lücke geschaffen habe und nicht jeder MySql hat

mit
Zitat:
SQLite
shell_exec('grep ...')
kann ich garnichts anfangen... zumal ich ja ein tool bau was auf jedem server laufen soll.
Mit Zitat antworten
  #6 (permalink)  
Alt 23-08-2007, 14:35
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
... aber das kann ich nicht nehmen da ich ja versuche sql-injects zu filtern... da macht es wenig sinn es aus einer DB zu holen da ich ja sonst so wieder eine lücke geschaffen habe und nicht jeder MySql hat
das ist unsinn - warum sollte es eine lücke sein?
Zitat:
zumal ich ja ein tool bau was auf jedem server laufen soll.
auch ohne php und internetzugang? diese utopische vorstellung solltest du näher spezifizieren.

Geändert von penizillin (23-08-2007 um 14:38 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 23-08-2007, 14:52
Nordin
 Registrierter Benutzer
Links : Onlinestatus : Nordin ist offline
Registriert seit: Aug 2005
Ort: DE / S-A
Beiträge: 415
Nordin befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
das ist unsinn - warum sollte es eine lücke sein?
Denke ich nicht... ich durchsuche als aller erstes (direkt nach <?php ) den querystring nach sql-injects und und und... heißt also wenn ich vorher meine mysql-datenbank nach badwords abfrage ist sie geöffnet und böse leute können so versuchen zuerst mein tool zu hebeln dann die seite... also warum nicht meine badwords erst ohne datenbank? wo keine datenbank verbindung besteht kann doch auch keiner rein... somit hab ich dieses sicherheitsrisiko ausgeschlossen

Zitat:
auch ohne php und internetzugang? diese utopische vorstellung solltest du näher spezifizieren.
brauch ich nicht... du weißt wie es gemeint ist! Falls du doch drauf bestehst und andere user es ja dann nicht verstehen würden und so weiter, bitte schön:

"zumal ich ja ein tool bau was auf jedem server laufen soll." welcher einem internetzugang und auf dem php läuft... oder besser: welches auf einem webserver mit php und internetverbindung laufen soll

Geändert von Nordin (23-08-2007 um 14:55 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 23-08-2007, 15:05
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Denke ich nicht... ich durchsuche als aller erstes (direkt nach <?php ) den querystring nach sql-injects und und und... heißt also wenn ich vorher meine mysql-datenbank nach badwords abfrage ist sie geöffnet und böse leute können so versuchen zuerst mein tool zu hebeln dann die seite... also warum nicht meine badwords erst ohne datenbank? wo keine datenbank verbindung besteht kann doch auch keiner rein... somit hab ich dieses sicherheitsrisiko ausgeschlossen
Quatsch, solange du Daten für Datenbankabfragen entsprechend escapest und dich an Grundregeln hälst besteht da keine Gefahr, zumal du bei einem Dateizugriff (falls Variabel) die gleichen Probleme hättest.

Wenn du beim Textfile bleiben willst (und bei der Struktur) helfen dir evtl. serialisierte Arrays weiter, am besten mit der IP als Key, dann kannst du schneller prüfen ob die IP vorhanden ist.
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #9 (permalink)  
Alt 23-08-2007, 15:12
Nordin
 Registrierter Benutzer
Links : Onlinestatus : Nordin ist offline
Registriert seit: Aug 2005
Ort: DE / S-A
Beiträge: 415
Nordin befindet sich auf einem aufstrebenden Ast
Standard

Jap will bei Textfiles bleiben... so können es auch mehr user nutzen...

ich hab mir es grad so überlegt das ich die IP-Rangen auf einzelne files verteile. z.b 1.txt dort sind dann alls ips der Range 1.xxx.xxx.xxx drin bis hin zu 255.xxx.xxx.xxx

$ip = $_SERVER['REMOTE_ADDR'];
wenn $ip range == 10 dann nimm 10.txt und prüfe ob ip vorhanden

von serialisierte Arrays hatte ich noch nichts gehört, werd ich mir mal anschauen
Mit Zitat antworten
  #10 (permalink)  
Alt 23-08-2007, 15:41
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Nordin
Jap will bei Textfiles bleiben... so können es auch mehr user nutzen...
schon richtig, mysql wird nämlich im zusammenhang mit php von ganz wenigen hostern angeboten.

Zitat:
Original geschrieben von Nordin
ich hab mir es grad so überlegt das ich die IP-Rangen auf einzelne files verteile. z.b 1.txt dort sind dann alls ips der Range 1.xxx.xxx.xxx drin bis hin zu 255.xxx.xxx.xxx
dolle idee von dir
Zitat:
Original geschrieben von PHP-Desaster
Du könntest zum Beispiel je nach IP-Range eine andere Datei verwenden, so dass diese Datensätze aufgeteilt werden!
wobei die letzten stellen der ip eine bessere streuung geben würden.
254 einzelne dateien? meine fresse, hast du viele spam-ips. werden die eigentlich nach einer gewissen zeit gelöscht, oder hat derjenige pech, der nach ner woche zufällig eine von den ips zugewiesen bekommt?

ehrlich gesagt habe ich auch keinen plan, was du da veranstaltest http://www.ctxtra.de/ und wer das nutzen soll.
Mit Zitat antworten
  #11 (permalink)  
Alt 23-08-2007, 15:56
Nordin
 Registrierter Benutzer
Links : Onlinestatus : Nordin ist offline
Registriert seit: Aug 2005
Ort: DE / S-A
Beiträge: 415
Nordin befindet sich auf einem aufstrebenden Ast
Standard

@3DMax

Mir und vielen anderen usern hat es bis jetzt geholfen. Du musst es ja nicht nutzen...

Zumal es hier nicht um sinn oder unsinn geht sondern um eine frage...

Und ja ich habe viele IPs, sehr viele IPs gesammelt aus ebensovielen blacklists aus den tiefen des internets... Wenn deine IP in der liste ist hast du pech richtig!

Wie machst du es wenn deine IP im Spamhaus ( http://www.spamhaus.org/sbl/index.lasso ) landet?? Sie löschen oder? Gut. Übersinn und unsinn brauchen wir hier nicht zu reden da hatte ich schonmal einen Beitrag zu verfasst...
Mit Zitat antworten
  #12 (permalink)  
Alt 23-08-2007, 16:09
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
ehrlich gesagt habe ich auch keinen plan, was du da veranstaltest http://www.ctxtra.de/ und wer das nutzen soll.
OffTopic:
Voralldem wenn man sich so schnell ausperren kann, und wenn die Software meint ?action=delete sei ein Sicherheitsrisiko ...irgendwie der falsche Ansatz.
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #13 (permalink)  
Alt 23-08-2007, 16:31
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Nordin
Zumal es hier nicht um sinn oder unsinn geht sondern um eine frage...
klar geht es darum!
Zitat:
Der CTXtra blockt und loggt Angriffe dass du sie auswerten und anderen usern zur Verfügung stellen kannst. Die Zusammenarbeit aller User gewährleistet einen noch höheren Schutz gegen SPAM und Angriffen.
heißt für mich im klartext, dass jedes scriptkiddy deine blacklisten manipulieren kann, so dass sie völlig unbrauchbar sind.
jetzt ist mir auch klar, warum du soviele einträge hast
Mit Zitat antworten
  #14 (permalink)  
Alt 23-08-2007, 21:17
Nordin
 Registrierter Benutzer
Links : Onlinestatus : Nordin ist offline
Registriert seit: Aug 2005
Ort: DE / S-A
Beiträge: 415
Nordin befindet sich auf einem aufstrebenden Ast
Standard

@3DMax
Zitat:
heißt für mich im klartext, dass jedes scriptkiddy deine blacklisten manipulieren kann, so dass sie völlig unbrauchbar sind.
jetzt ist mir auch klar, warum du soviele einträge hast
Du verstehst da irgendwas völlig falsch...

Zitat:
und wenn die Software meint ?action=delete sei ein Sicherheitsrisiko
Das ist ebenfalls nicht richtig... die software hat in diesem fall "delete" gefunden und da die software leider noch nicht lernen und denken kann hat sie es als angriff gewertet... Im ACP hat man dann die möglichkeit das erkannte "Badword" (im falle das es eine variable oder so ist die man in seinen sacripten benutzt) in eine whitelist einzutragen... das macht man dann einmal und gut... alles andere was dann über die url reinkommt (GET) wird als angriff gewertet.

Bei mir konnte ich auf 5 verschiedenen Seiten 30 angriffe in zwei tagen blocken und nicht ein einziger geblockter ist ein guter gewesen... heißt also das er funktioniert!! Dieser angriff wird geloggt und die ip wird gespeichert... versucht ein anderer user die seite dann aufzurufen und hat er die dann zufällig die geblockte ip bekommen, wird im eine meldung gezeigt das er eine email an den admin schreiben soll... optinal wird in der nächsten version die geblockte ip 48 stunden geblockt... jetzt komm mir bitte nicht wieder mit nicht sinnvoll... bei mir und anderen user funktioniert es... falls du den sinn noch nicht richtig verstanden hast, dann lies dort im forum nach oder unterhalt dich dort mit usern die ihn bereits nutzen dann könnt ihr gern solche aussagen treffen... aber ohne ihn getestet zu haben ist es reine spekulation was ihr macht.
Mit Zitat antworten
  #15 (permalink)  
Alt 23-08-2007, 21:42
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Nordin
Du verstehst da irgendwas völlig falsch...
du erklärst es aber auch nicht genauer.

Zitat:
Original geschrieben von Nordin
Im ACP hat man dann die möglichkeit das erkannte "Badword" (im falle das es eine variable oder so ist die man in seinen sacripten benutzt) in eine whitelist einzutragen... das macht man dann einmal und gut... alles andere was dann über die url reinkommt (GET) wird als angriff gewertet.
der ansatz ist völlig falsch, gewöhnlich werden parameter ausschließlich anhand einer whitelist gefiltert, dann kann man sich solche ungetüme:
wort finden
sparen, da sie eh nicht alle fälle abdecken können, langsam und fehlerträchtig sind.
aber mach mal.
Mit Zitat antworten
Antwort

Lesezeichen


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

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

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:57 Uhr.