Zum Inhalt springen

Floodschutz & Co


Empfohlene Beiträge

Habe ein PHP Chat und möschte einen sogen. Floodschutz einbauen.... hab aber nicht den geringsten Ansatz wie ich so einen aufbauen bzw. programmieren könnte...

Die Bedingungen: Der Chatter soll max x sätze in einem zeitintervall von x sekunden absenden.

Die sätze werden in einer MYSQL Tabelle gespeichert!

Eigabe erfolgt über ein Textfeld.

Hoffe ich bekomme ein Paar Tipps und Anregungen :D

Ach ja... wenn einer vieleicht noch weiß wie man einen Chatbot schreiben kann (erstmal das dieser sich zum chat verbindet) oder wo man einen herbekommen kann ???

Kann erstmal nen einfacher sein... sollte sich nur mal mit dem chat verbinden können (also quasi einloggen).

Hoffe auf zahlreiche Antorten ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nu ja... sag mir warum dies nicht sinvoll sein soll ???

Sagen wir es befinden sich 3 chatter im raum. 2 unterhalten sich , der 3 fängt an 1000 mal hintereinander die zahl 1 einzutippen. Kein Admin da ???!!! Der floodschutz verhindert dies. Mann könnte ja noch eine zusatzfunktion einbauen wo den flooder für eine gewisse zeit kenbelt ??!!

Sag mir warum du dies nicht sinnvoll hälst :rolleyes:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Na gut, das hängt dann wahrscheinlich auch von deiner Begrenzung ab.

Aber mich nerven hier manchmal schon die 60 Sekunden pro Foreneintrag.

Aber eine Antwort auf den zweiten teil würde mich hier auch mal interessieren, zudem mein Chat ohne externes Protokoll läuft und u.U. 'ne Menge Traffic produziert.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja zum zweiten teil...... sagen wir mal so....... ich hab nen externen java bot. is halt für javachats gedacht.... isn alter von nem cassiopia chat. aber da muss man so sachen wie port angeben und .... mein php chat läuft über keinen port :confused:

Weiss ja ned ob man den doch verwenden kann .... vieleicht bin ich einfach nur zu blöd :P

Link zu diesem Kommentar
Auf anderen Seiten teilen

einen chat in php zu machen finde ich schon vom ansatz her eine schlechte idee.

für sowas sollte man applets o.ä. verwenden.

ist ja kein wunder das du extrem viel traffic hast, wenn du bei jedem geschriebenen satz deine seite reloaden musst!

zum thema:

einfach in die db mit eintragen wann der datensatz eingefügt wurde.

prüfen kannst du dann mit *PSEUDOCODE*

if ( $timenow - $timelastpost > $timebetweenposts) {

=> insert text in db

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von kills

einen chat in php zu machen finde ich schon vom ansatz her eine schlechte idee.

für sowas sollte man applets o.ä. verwenden.

ist ja kein wunder das du extrem viel traffic hast, wenn du bei jedem geschriebenen satz deine seite reloaden musst!

zum thema:

einfach in die db mit eintragen wann der datensatz eingefügt wurde.

prüfen kannst du dann mit *PSEUDOCODE*

if ( $timenow - $timelastpost > $timebetweenposts) {

=> insert text in db

}

Also ersten habe ich das ja bereits gesagt, zweitens wird nicht die gesamte Seite jedesmal neu geladen (Beispiel ) und drittens hast du die Frage anscheinend nicht richtig gelesen.

:rolleyes:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich vermute mal, du arbeitest mit PHP und MySQL.

Dann wäre die sinnigste Lösung (die kills ja schon angesprochen hat), sich zu dem Chateintrag den User und den Timestamp mit einzutragen.

Dann bei einem neuen Eintrag einfach eine Abfrage einbauen, wieviele Posts der User im Zeitintervall gemacht hat.

Pseudocode:


anfanginterval = jetzt - 30_sekunden;

SELECT COUNT(*) as anzahl FROM TABELLE where user='XYZ' and timestamp between anfanginterval AND jetzt;

if anzahl < 10

  trage_post_ein

else

  gebe_meldung_aus

endif

Das Knebeln könntest Du lösen, indem Du in eine Usertabelle einen Timestamp "geknebelt" mit einbaust. Wenn der User dann "gefloddet" hat fügst Du den Timestamp ein und fragst bei jedem post ab, ob und wie lange der user schon geknebelt ist: Pseudocode, die zweite:

select geknebelt from benutzer where name='XYZ'

if jetzt-geknebelt >= 30_Minuten

  fuehre_die_flood_pruefung_von_oben_aus

else

  gebe_meldung_aus_dass_der_user_geknebelt_ist

endif

Vielleicht hilft's ja!

ICQ

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...