Will ich <br/> überhaupt entfernen? Ich habe die zwar im Test eingebaut, aber Texte von Nutzern dürften entweder einzeilig sein oder nur über eine Textarea eingegeben werden. Die Frage ist halt, ob man verläßlich sagen kann, welche Form des Zeilenumbruches durch <TEXTAREA> erzeugt wird. Falls nicht, dann müßte ich natürlich alles, was kein \n ist noch entfernen oder eher ersetzen, einschließlich \r\n und so weiter.
Ranma
Das wäre dann aber keine Anwendung aus Sicherheitsgründen, weil das title-tag selbst schon so etwas wie <script> entschärfen würde?
htmlentities() und htmlspecialchars() werden auch nicht nur aus Sicherheitsgründen verwendet, sondern (auch) um den HTML-Code anzuzeigen. Du hast halt die Wahl, ob du den Code als solchen anzeigen lassen, oder komplett entfernen möchtest.
Will ich <br/> überhaupt entfernen?
Braucht ja nicht endgültig entfernt zu werden, sondern nur innerhalb von preg_replace()
Übrigens, ich wollte nicht Google in Sachen semantischer Suche Konkurrenz machen. Das wird Google schon niemals auf die Reihe bekommen wie man schon daran sieht, daß Google behauptet automatisch übersetzen zu können und täglich weiteren Leuten beweist, daß es das nicht kann.
Aber PHP soll Funktionen haben, die für die Anwendung in einer Schwarzen Liste interessant sein könnten. Das läßt sich nicht mehr mit Schwarzen Listen aus dem Papierzeitalter vergleichen. In PHP sollte man mit soundex(), metaphone() (die ich noch nie ausprobiert habe) und preg_match() in der Hinsicht doch einiges anfangen können?
Schwarze Listen gelten als unsicher weil man sie oft mit einigen zusätzlichen Leerzeichen oder Unterstrichen umgangen werden. Dem sollte man doch mit Regulären Ausdrücken begegnen können? Auch wenn Moderation erforderlich sein sollte, dann wäre es doch trotzdem gut, den Aufwand dafür zu reduzieren.
Ranma
Es ging ja ursprünglich um die Frage, wie man automatiert Spampostings erkennt. Was soll dann in die Blacklist - typische Produkte, die bespammt werden, wie z.B. "Viagra"?
Also ich habe schonmal gesehen wie ein komplettes Forum durch Spämpostings völlig unbrauchbar gemacht wurde. Jene Spämpostings hatten tatsächlich Angebote jener Art zum Inhalt, nur viel weniger seriös und wahrscheinlich auch weniger legal. Meistens waren sie am englischsprachigem Inhalt und oft völlig sinnfreie Titel auf Anhieb von echten Beiträgen zu unterscheiden.
Aber den Teil darüber hast du abgetrennt und zu einem eigenem Thema gemacht. Hier ging es tatsächlich um Reguläre Ausdrücke. Und die sollten sich doch verwenden lassen, um Moderationsarbeit zu erleichtern?
Auch ich wollte mal ein Forum betreiben. Das hatte ich mir von Anfang an so gedacht, daß fremdsprachige Beiträge zugelassen und sogar erwünscht sind. Das stellt Moderatoren natürlich vor Schwierigkeiten. Deshalb muß ich mir Gedanken darüber machen wie man einen Moderator in so einem Fall nicht völlig hilflos aussehen läßt.
Irgendwie bringst du mich auf Ideen. Ich weiß nur noch nicht, ob die gut oder schlecht sind. Mir kam gerade die Idee, daß ich mir von Spämbots sagen lasse, was zu beanstandender Unfug ist. Dazu muß der Spämbot sich nur über einen Honeypot verraten. Das müßte ich dann zusätzlich trotzdem irgendwo speichern, obwohl so ein Honeypot eigentlich dazu dienen sollte sich und seinem Skript das zu ersparen. Andererseits reicht es nicht, nur Späm auszusortieren. Vor allem illegale Inhalte wie Beleidigungen, rechtsradikale Propaganda oder islamistische Propaganda müssen verhindert werden. So könnte zum Beispiel jemand etwas auf Arabisch schreiben und ich hätte keine Ahnung, ob der Inhalt islamistischer Natur ist oder eine Bombenbauanleitung oder sogar zu Anschlägen aufruft. Aber irgendjemand würde sich sicher über so etwas beschweren. Ab da wüßte ich dann, daß der Beitrag VIELLEICHT zu beanstanden ist. Viele Foren und ähnliche Angebote haben einen Meldeknopf. Nur kann der halt nicht zuverlässiger als andere Knöpfe sein. Wo ein Knopf ist, da drückt auch früher oder später jemand drauf. Wahrscheinlich eher früher und unangebracht. Eigentlich ist das das eigentliche Problem.
Man könnte natürlich sozusagen demokratisch entscheiden. Ab da habe ich dann sofort wieder das Problem, daß ich Bots erkennen können muß.
Ranma
Tatsächlich bin ich ja nicht der Erste, der auf das Problem gestoßen wäre. Tatsächlich verwendet Wikipedia Reguläre Ausdrücke zur Spämabwehr. Die scheinen sich aber nur auf URL zu beziehen.
Natürlich ist Wikipedia berühmt und hat daher viele Freiwillige für jede der Wikipediasprachen. Das Problem entweder falsch positive oder falsch negative Treffer zu haben stellt sich daher nicht so sehr, obwohl es in der Wikipedia mit einer Weißen Liste, die Vorrang vor der Schwarzen Liste hat, angegangen wird.
Ranma
Möglicherweise lassen sich die beiden Listen der Wikipedia verwenden. Oder auch weitere solche Listen, falls ich weitere öffentlich zugängliche solche finde.
Dafür erforderlich wäre nur ein RegEx, der andere RegExe erkennt. Die Einträge in den Wikipedia-Listen sind zeilenweise, aber es steht auch noch viel anderer Text auf den Seiten.
Ranma
Oder so etwas wäre auch interessant:
http://scienceblogs.de/astrodicticum-simplex/2014/09/29/trolle-zaehmen-leicht-gemacht/#comment-270374
Leider habe ich gerade nicht viel Zeit.
Ranma
Auch Google hat eine Badword-List, die allerdings etwas albern ist, weil kurz und der Inhalt nicht hauptsächlich aus Beleidigungen oder schmuddeligen (es ist ja eine US-Firma) Begriffen besteht, sondern einfach nicht nachvollziehbar ist. Auch Wikipedias Liste ist inhaltlich eigentlich nicht nachvollziehbar. Möglicherweise ist das Problem garnicht so groß.
Möglicherweise mußte ich nur nochmal über das Problem nachdenken. Es ist nämlich so, daß die Abtrennung eines Teiles des Themas doch etwas verwirrend war. Zunächst mal geht mein Ansatz davon aus, daß Beiträge international sind und in fremden Sprachen geschrieben sein können. Die Aufgabe dann Inakzeptables auszusortieren ist für eine einzelne Person unlösbar. Ein Computer steht vor jeder menschlichen Sprache so wie ein Mensch vor einer ihm völlig fremden Sprache. Darum ist die Aufgabe auch für ein Skript unlösbar. Da helfen auch alle Regulären Ausdrücke nichts. Was die Besucher der Netzseite betrifft, gibt es zwei Fälle:
Einmal stört der Text vielleicht garniemanden. Das kann daran liegen, daß der Text völlig in Ordnung ist. Das kann aber auch daran liegen, daß den Text niemand versteht. Solange niemand daran Anstoß nimmt und sei es, weil es unmöglich ist, besteht auch kein Problem.
Die andere Möglichkeit ist natürlich, daß jemand daran Anstoß nimmt. Dafür könnte ich einen Beschwerdeknopf im Skript vorsehen. Das führt dann wieder zu einer Fallunterscheidung:
Ich könnte der Beschwerde folgen und den Text entfernen und das wäre vielleicht richtig.
Andererseits versucht vielleicht nur jemand mittels der Option einem anderen eins auszuwischen. Ich könnte darauf hereinfallen und falsch handeln.
Welche der Beschwerden sind also echt und welche nicht? Um dafür einen Anhaltspunkt zu haben, hatte ich mir auch überlegt die Beiträge bewerten zu lassen, weswegen ich noch ein weiteres Thema parallel zu diesem eröffnet habe. Aber das ist tatsächlich nur ein unzureichender Anhaltspunkt. In dem anderen Thema lerne ich richtig dazu, darum hat der sein Gutes. Für die Lösung des Problems, ob ich einer Beschwerde vertrauen kann, dürfte es bessere Ansätze geben. Ich hätte da noch den anderen Ansatz gehabt, der Mehrheit zu vertrauen. Anstößiges Material ist ja nicht zuletzt deswegen anstößig, weil es die Mehrheit als solches empfindet.
Aber der Ansatz der Mehrheit zu vertrauen, stellt mich vor ein weiteres Problem: das darüber Gesagte stimmt nur, falls die Nutzer alle Menschen und keine Bots sind. Genau darum wiederum suche ich nach Methoden Bots, die bestimmte Meinungen verbreiten, zu erkennen. Also Shillbots sind mir hier ein größeres Ärgernis als bloße Spämbots. Letztere sollten sowieso relativ leicht abzuhalten sein, während die anderen extra für Soziale Netzwerke programmiert werden. Manche Statistiken sagen sogar, daß die große Mehrheit der Nutzer Sozialer Netzwerke aus Bots besteht. Aber leider hat Jörg den Teil über Bots abgetrennt und zu einem eigenem Thema gemacht. Darum hatte ich angefangen zwischen den Themen gedanklich zu trennen, obwohl doch tatsächlich das eine Voraussetzung für das andere ist. Ab da wurde meine Suche etwas wirr.
Jetzt sollte aber alles wieder entwirrt sein und einigermaßen klar, wonach ich suche.
Ranma
Angeblich kann
https://www.twitteraudit.com/
feststellen, wieviele der Follower eines Twitter-Kontos echt und wieviele Bots sind. Für Twitter wurden nämlich schon von mehreren Anbietern Bots programmiert. Jetzt müßte man nur noch wissen, auf welche Weise Twitteraudit die Unterscheidung treffen können will.
Ranma