Jump to content
Sign in to follow this  
hobbyknipser

kann man Spam bei den Kommentaren unterbinden ?

Recommended Posts

Moin,


ist es möglich, wie bei den eigentlichen Einträgen im GB, Kommentare auch nur nach vorheriger Freischaltung bzw. Eingabe eines Sicherheitscodes zuzulassen ? Könnte ggf. die Kommentarfunktion auch ganz unterbunden werden, um Spammer auszuschließen ? Hab´ ich im config File ein Feature übersehen ? :gaga:


Kann man irgendwie die derzeit ca. 400 Spam-Kommentare komplett löschen, oder muß das einzeln geschehen ? :o


Vielen Dank für die Hilfe. :wink:

Share this post


Link to post
Share on other sites

Vielen Dank für die Nachfrage !


Version 2.12


Im eigentliche GB ist ja fast nix los, weil die Sicherheitsabfrage gut greift und ohnehin sehr wenige Besucher auf die Seite kommen.

Die Post geht aber hier ab:


http://www.hannover-brass.de/guestbook/pgb/kommentar.php?id=5


In den anderen Posts habe ich die Spam-Kommentare bereits alle einzeln per Hand gelöscht. Es wäre schön, wenn man auch alle auf einmal löschen könnte. Ist es denn nun möglich, die Kommentare global zu unterbinden ?


Vielen Dank für die Mühe. - Frank -

Share this post


Link to post
Share on other sites
Guest

Hattest du vorher schon mal eine andere Version des PGB installiert?

Share this post


Link to post
Share on other sites

Vielen Dank ür den Hinweis auf die Variable.


Den Hinweis mit den Kommentaren, welche älter als die Beiträge sind, konnte ich jetzt nicht nachvollziehen. Wenn die Spam-Kommentare auf irgendeinem Weg am GB vorbei direkt in die Datenbank geschrieben werden, müssten sich jetzt ja auch weitere Einträge dort ansammeln, obwohl das Kommentar-Formular abgeschaltet ist. Ich bin schon gespannt. Eine ältere Version des Gästebuchs hatte ich auf diesem Webspace nicht installiert.


Die Implementierung einer weiteren Sicherheitsabfrage für die Eingabe von Kommentaren wäre sicher die beste Lösung auf Dauer.


Viele Grüße, -Frank-

Share this post


Link to post
Share on other sites

Müsste man was im Code verändern; nichts weltbewegendes. Aber was soll das bringen? In einem Gästebuch wo nur der eigene Admin etwas schreiben kann? Falls du dies benötigst, dann schreib ich dir schnell was.



Grüße

- Editiert von k00ni am 07.02.2008, 11:15 -

Share this post


Link to post
Share on other sites

Ich hatte das falsch gelesen: Ich dachte, nur der Admin solle Gästebucheinträge schreiben können... ist wahrscheinlich die Hitze bei uns :-D :gaga:


Nur noch Admins können zu Beiträgen Kommentare schreiben


In der Datei kommentar.php ca. in Zeile 16 nach folgendem Code

 

if($gb_allowkom !=1) {
   header(\"Location: index.php\");
   exit();
}

 

diesen hier schreiben

 

else 
{
if ($user[\'usertyp\'] != \'admin\') 
{
   header(\"Location: index.php\");
   exit();
}
}

 

Damit kann keiner mehr ein Kommentar verfassen, es sei denn, er ist ein Administrator. Wird hingegen die Einstellung $gb_allowkom wieder auf 1 gesetzt, verfällt die Einschränkung, dass nur noch Administratoren Kommentare schreiben können.

Share this post


Link to post
Share on other sites

...aber wie unterbinde ich nun den Spam in den Kommentaren?


dazu konnte ich nun im laufenden Thread nix entnehmen.

Ich habe das Problem auch! ==>> www.utcd.de



So Long Gulli

Share this post


Link to post
Share on other sites
...aber wie unterbinde ich nun den Spam in den Kommentaren?


Spam wird entweder von Bots verursacht, oder von Menschen, die sehr viel Zeit haben. Wenn du es mit ersterem zu tun hast, dann kannst du dem einen (kleinen) Riegel vorschieben, indem du Kommentare nur von Usern zulässt. Du gewährst also im Allgemeinen Gästen, worunter ja auch Bots sein Können, keine Möglichkeit irgendetwas zu posten (Threads, Kommentare, etc.) Eine weitere Möglichkeit wäre eine Captcha abfrage, wobei zu hören ist, dass diese immer wieder umgangen wird; die Bots werden eben auch immer schlauer. :gaga:


Hast du es mit zweiterem zu tun, dann gibts wenig. Denn er is ein intelligentes Wesen und kann somit jegliche Sicherheitsabfragen erfolgreich abschließen. Diese Art von Spam könnte man nur begrenzen, wenn man bspw. im Gästebuch nur 3 Kommentare pro Stunde zu lässt, also eine Zeitsperre einbaut. Aber das sind alles nur Notlösungen.


dazu konnte ich nun im laufenden Thread nix entnehmen.

Ich habe das Problem auch!



Bei dir auf der Seite gibts eher Spam bei den normalen Gästebuch einträgen. Ich kenn das nicht wirklich, aber schau, ob du Gästen nicht verbieten kannst, Einträge zu schreiben. Wenn das nicht geht, oder du das nicht willst, gäbe es nur noch die Möglichkeit einer Sicherheitsabfrage. (bspw. Captcha)



Grüße

Share this post


Link to post
Share on other sites

nun meine nächste Frage,

tolle erklärung übrigens :H: , gibt es das zum Einbau für das Gästebuch speziel für die Kommentare




So Long Gulli

Share this post


Link to post
Share on other sites
Original von k00ni

Ich hatte das falsch gelesen: Ich dachte, nur der Admin solle Gästebucheinträge schreiben können... ist wahrscheinlich die Hitze bei uns :-D :gaga:


Nur noch Admins können zu Beiträgen Kommentare schreiben


In der Datei kommentar.php ca. in Zeile 16 nach folgendem Code

 

if($gb_allowkom !=1) {
   header("Location: index.php");
   exit();
}

 

diesen hier schreiben

 

else 
{
if ($user['usertyp'] != 'admin') 
{
   header("Location: index.php");
   exit();
}
}

 

Damit kann keiner mehr ein Kommentar verfassen, es sei denn, er ist ein Administrator. Wird hingegen die Einstellung $gb_allowkom wieder auf 1 gesetzt, verfällt die Einschränkung, dass nur noch Administratoren Kommentare schreiben können.




So, habe das mal versucht, habe bei der Einstellung gb_allowkom auf 1 gesetzt, und in der kommentar.php den code hinzugefügt.


jetzt erscheint wenn man auf Komentar geht folgendes:

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /www/htdocs/w007f07a/GB/kommentar.php on line 25


Parse error: syntax error, unexpected T_STRING, expecting ']' in /www/htdocs/w007f07a/GB/kommentar.php on line 31

Share this post


Link to post
Share on other sites

Von Anfang bis 31

 

<?php
//##############################################################################
//## pGB - Kommentare - anybody would give his senf zum Thema                 ##
//## Thomas Ehrhardt 2005                                                     ##
//## www.powie.de                                                             ##
//##############################################################################
// 09.11.2003 - Session Nickname einsetzen
// 20.10.2002 - Globale Sessiondaten in Use
// 16.10.2005 - korrekt Blocken wenn keine Kommentare erlaubt
//##############################################################################

require("pgb_main.php");
require("kopf.php");
include("head.php");

//TPLs
$TGBRow  = new Template($pgbtpldir."/gb_row.html");

if($gb_allowkom !=1) {
   header("Location: index.php");
   exit();
}
else
{
if ($user['usertyp'] != 'admin')
{
   header("Location: index.php");
   exit();
}
}
$id       = $_REQUEST['id'];     //ID des Eintrages

Share this post


Link to post
Share on other sites

Mahlzeit,


Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /www/htdocs/w007f07a/GB/kommentar.php on line 25


Diese Meldung kommt, weil du wahrscheinlich unter anderem bei

 

if ($user[\'usertyp\'] != \'admin\')

 

die Backslashs gelassen hast, wie er sie oben bei mir eingefügt hatte. Diese müssen rausgemacht werden!


Weiterhin war meine Lösung unvollständig. Zur Zeit läuft hier noch ein Thread, bei dem es um das Einsenden von News geht, was nur Registrierten erlaubt werden soll. Da war es ähnlich.


Nun nochmal ganz von vorn: Schreiben von Kommentaren nur durch den Admin möglich.


1. Schritt: Die veränderte Datei kommentar.php durch die Originale von Powie ersetzen.



2. Schritt: Nach diesem hier

 

require("pgb_main.php");
require("kopf.php");
include("head.php");

 

das hier schreiben

 

include("login.inc.php");

 


3. Schritt Nach diesem hier

 

if($gb_allowkom !=1) 
{
   header("Location: index.php");
   exit();
}

 

wieder das hier schreiben

 

else 
{
if ($user['usertyp'] != 'admin') 
{
    header("Location: index.php");
    exit();
}
}

 

4. Schritt: Nochmal den Code nach Fehlern und bspw. falsch gesetzten Backslashes ( \ ) durchschauen.



Erklärung:


Warum der Code nicht funktionierte war einerseits, weil du bestimmt noch die Backslashes in den if-Abfragen drin hattest. Zum anderen fehlte die User-Authentifizierung. Das heißt, es wird nirgendwo geprüft, ob das ein Nutzer ist oder nur ein Gast. Somit ist dann nicht feststellbar, welchen Rang der Benutzer hat. Diese Authentifizierung wird in der Datei login.inc.php vollzogen, welche hier normalerweise nicht eingebaut ist.


Es wäre vielleicht eine Überlegung, dies fest in das Skript mit aufzunehmen. Denn in Zeiten des SPAM wollen vielleicht viele User nicht, dass die Kommentare ihrer Gästebucheinträge, total zugeschwemmt werden mit Werbung etc. Und bei vielen Seiten gehört das Gästebuch eh einer Person, also antwortet auch nur sie auf die Einträge.



Grüße

Share this post


Link to post
Share on other sites

OK, habe es geändert,

nachdem ich auf Komentar klicke, mußich mich als Admin einloggen, sobald ich das gemacht habe kommt folgendes:


Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w007f07a/GB/kopf.php:4) in /www/htdocs/w007f07a/GB/kommentar.php on line 27

Share this post


Link to post
Share on other sites

Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w007f07a/GB/kopf.php:4) in /www/htdocs/w007f07a/GB/kommentar.php on line 27

 

Dass liegt daran, dass er HTML ausgibt, bevor er den Cookie anlegt. Dies mag er nicht, aber das kann man aus der Welt schaffen.


Schreibe einfach vor dem hier

 

require("pgb_main.php");
require("kopf.php");
include("head.php");

 

dass hier

 

include("login.inc.php"); 

 

Also wie in meinem letzten Post, nur umgedreht. :-D Sorry, hatte das nicht beachtet.



Grüße

Share this post


Link to post
Share on other sites

Jut, hab ich gemacht.


jetzt kommt folgendes:


Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /www/htdocs/w007f07a/GB/login.inc.php on line 19


Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /www/htdocs/w007f07a/GB/login.inc.php on line 20


Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /www/htdocs/w007f07a/GB/login.inc.php on line 47


Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /www/htdocs/w007f07a/GB/login.inc.php on line 48



und das Login feld, kann mich aber nicht einloggen.

Share this post


Link to post
Share on other sites

Probier mal nach dem

 

require("pgb_main.php");

 

das hier

 

include("login.inc.php");

 

Muss also dann so aussehen:

 

require("pgb_main.php");
include("login.inc.php");
require("kopf.php");
include("head.php");

Share this post


Link to post
Share on other sites

Hab ich jetzt so gemacht.


Nach dem ich mich eingeloogt habe kommt:


Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w007f07a/GB/kopf.php:4) in /www/htdocs/w007f07a/GB/kommentar.php on line 28


 

<?php
//##############################################################################
//## pGB - Kommentare - anybody would give his senf zum Thema                 ##
//## Thomas Ehrhardt 2005                                                     ##
//## www.powie.de                                                             ##
//##############################################################################
// 09.11.2003 - Session Nickname einsetzen
// 20.10.2002 - Globale Sessiondaten in Use
// 16.10.2005 - korrekt Blocken wenn keine Kommentare erlaubt
//##############################################################################

require("pgb_main.php");
include("login.inc.php");
require("kopf.php");
include("head.php");

//TPLs
$TGBRow  = new Template($pgbtpldir."/gb_row.html");

if($gb_allowkom !=1) {
   header("Location: index.php");
   exit();
}
else
{
   if ($user['usertyp'] != 'admin')
   {
       header("Location: index.php");
       exit();
   }
}
$id       = $_REQUEST['id'];     //ID des Eintrages

Share this post


Link to post
Share on other sites
Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×