www.onescripts.de

zzz

Mitglied
Hi,

ich würde mich über euer Feedback zu meiner neuen Seite freuen:

http://www.onescripts.de

Auf meiner Seite findet ihr kostenlose PHP MySQL Scripte, die ich selbst erstellt habe und jeder kostenlos verwenden darf.
Bis auf das OneForum sind alle meine Scripte ohne sichtbaren Copryright Hinweis.

Meine Scripte:
OneForum (deutsch & english), OneBlog, OneGuestbook, OneNews, OneAskme (Fragesystem), OneNewsletter, OneCounter, OneShoutbox, OneFeeds (RSS), OneMailer, OneRecommend (Weiterempfehlung).

Auch würde ich mich über eure Meinungen zum Design meiner Seite freuen. Ich habs recht einfach aber gut strukturiert gehalten.

Mfg
 
Hi Andy,

auf der Startseite fehlt mir ne Headline und ein bisschen Text um was es auf der Seite geht. Es sollte auf den ersten Blick erkennbar sein um was es auf der Seite geht und warum man hier richtig ist.

Dann verstehe ich den Unterschied zwischen "Freie PHP Scripte" und "Weitere Scripte" nicht. Und was ist das mit dem OneForum? Ist das auch ein Script? Da es separat aufgeführt ist denke ich dass es keine Script ist sondern das Forum deiner Seite.

Warum komme ich wenn ich bei "OneForum" auf den dazugehörigen Button klicke auf die FAQs? Warum hat "Weitere Scripte" einen Button zum Support Forum?

Generell gibt es sehr viele Call to actions auf der Homepage die optisch gleichwertig dargestellt werden. Du solltest dir überlegen, was dein Haupt-Call-to-Action ist und diesen hervorheben. Es sollte klar ersichtlich sein, was der Besucher auf deiner Seite tun soll.

Die Texte bei den einzelnen Punkten sind für meine Begriffe etwas zu lang. Fasse dich kurz und mache in 2-3 einfachen Sätzen klar um was es geht.

Brauchst du News & Changelogs auf der Startseite oder genügt das nicht auch in einem extra Menüpunkt.

Optisch kann man auch sicherlich noch optimieren. Die Schatten der h1 würde ich nochmals überdenken. Außerdem würden ein paar Bilder oder Icons das ganze auflockern.

VG
Christian
 
QUOTE (OneScripts @ Mo 27.02.2012, 14:45) ....Ich habs recht einfach aber gut strukturiert gehalten....

warum brauchst du dann ein Feedback wenn deine Meinung schon feststeht?

Ich finde die Seite grafisch etwas fade. Der eine oder ander Farbklecks würde guttun

Gruß Ronny
 
Hi,

danke für eure Menungen ich werd diese berücksichtigen!

Würde mich aber auch freuen wenn jemand was zu den Scripten sagen würde
rolleyes.gif


Mfg
 
Nun ja, mich haben mehr die PHP-Scripte interessiert.

Beim OneForum sieht es aus als ob es jemand geschrieben hat, der frisch in PHP eingestiegen ist, anders kann ich mir den Quellcode nicht erklären.


Kritisch finde ich aber diese Aussage, bei einer klassischen XSS-Lücke im BBCode des Forums.
QUOTE Features:
[...]
Schutz vor Cross-Site-Scripting (XSS)
[...]

Quelle: http://www.onescripts.de/oneforum.php



CODE $msg = preg_replace('#\[ url=(.*)\](.*)\[/url\]#isU', "<a href=\"$1\">$2</a>", $msg);

OneForum: data/bbcode.php Zeile 15

Wobei selbst hier "[ url" wohl ein Fehler darstellt. Aber diesen Fehler findet man durch den Quellcode schon heraus oder nutzt eben den Code:

CODE $msg = preg_replace('#\[url\](.*)\[/url\]#isU', "<a href=\"$1\">$1</a>", $msg);




Ausnutzen kann man das Ding sehr einfach:

CODE [ url=javascript:x=/xss/;alert(x.source);]harmloser XSS-Test[/url]


CODE <a href="javascript:x=/xss/;alert(x.source);">harmloser XSS-Test</a>



Im Grunde gehört das Script in der Form von Netz genommen.


Das war einer der größten Dinger, die ich auf die schnelle gefunden, ansonsten findet sich:
  • unstrukturierter Programmcode, in welchen die Programmierstile immer wieder welchseln (mal wird nach Allman eingerückt, dann nach irgendwas anderen, Ab und An auch gar nicht)
  • Überflüssiger Programmcode wie $msg = $msg; oder <?php echo '' . $title . ''; ?>
  • es wird keine sichere Speicherung von Passwörtern, hier wird nur ein HASH ohne Salt und Dehnen verwendet, noch ist der HASH besonders sicher (SHA1)
  • keine saubere Kommentierung im Quellcode
  • kein Templatesystem
  • kein System zum Wechseln der Sprache
  • seltame Programmzeilen, wie bspw. <li><a href="inbox.php?user_id=' . $_SESSION['user_id'] . '">Posteingang</a></li>, dies könnte ggf. auf eine Sicherheitlücke hinweisen, habe ich nun aber nicht konrolliert, vermute aber eher, das die Zeile unsinnig ist und nur informationstechnisch eine Sicherheitslück darstellt, oder $_POST['submit']=='Passwort ändern'
  • Verwendung des veralteten MySQL-Moduls
  • nicht stimmige Stellen, wie sha1($_POST['password']) bei setzen des Passwort, aber für das Login dann sha1(mysql_real_escape_string($_POST['user_pass'])) für das Login, hier sind Probleme bei Single und Double Quotes im Passwort vorprogrammiert
Bestimmt gibt es noch viel mehr zu finden, wie die vielen   im Design, dafür müsste aber mehr Zeit aufgewandt werden, und das ist mehr als genug Input, um erst mal etwas Arbeit zu haben, auch fehlen viele grundlegende Absicherungen im Script selber, das hier erst mal Sicherheit von Webanwendungen gebüffelt werden darf.
 
Hi,

nunja es ist kein profi forum aber ich find es ist auch nicht so schlecht wie du es darstellt:

- Das der Quellcode für dich unsauber wirkt kann ich nicht nachvollziehen, er ist ordentlich und strukturiert geschrieben. Und wenn mal nicht alles so schön eingerückt ist, ist das aber kein Markel.

- Das mit dem BBCode kann man natürlich änder (wer ich auch machen), aber java alerts oder ähnliches kann man trotzdem nicht ausführen. Ich hab mit strip_tags dieses Problem verhindert (auch ausführlich getestet).

- Zitat: Überflüssiger Programmcode wie $msg = $msg; oder <?php echo '' . $title . ''; ?>
Warum sollte $msg überflüssig sein, wenn ich an dieser Stelle eine Nachricht ausgeben möchte bei bedarf?
und echo $title liegt daran, damit natürlich der Seitentitel auch angezeigt wird, den der User in der config.php festgelegt hat.

- Zitat: seltame Programmzeilen, wie bspw. <li><a href="inbox.php?user_id=' . $_SESSION['user_id'] . '">Posteingang</a></li>
Was soll da komisch sein? Das ist ein Link zum Posteingang mit der dazuhörigen user id.

- Zitat: $_POST['submit']=='Passwort ändern' & Verwendung des veralteten MySQL-Moduls
Was passt dir daran nicht? Könntest du schon genauer definieren.

- sha1($_POST['password']) - Du meine Güte, da hab ich halt den escape string vergessen (stellt aber keine große sicherheitslücke dar - werd ich ändern)

Mfg
 
Lieber OneScripts,

du bittest um Feedback und speziell in einem Webmaster-Forum,
dann kann man schonmal andere Programmierer bzw. Experten treffen! ;-)

Deine Schreibweise passt mir nicht. Und zwar in dem Sinne, dass du so "bockig" rüberkommst.
Sascha will dir ja nicht schaden, sondern ganz im Gegenteil dir helfen!!
Sehe es doch als Kritik, die dich verbessern kann....

So jetzt ich noch kurz:
Meine Tipps (die du natürlich nicht annehmen musst):
- Ecken im Template würde ich zumindestens oben abrunden.
- In die Navi, würde ich einen Mouseover-Effekt für die Punkte (Buttons) nutzen.
- Der Kontrast von diesem blau in der Navi stimmt mit der Schriftfarbe dunkel-grau(?) nicht überein.
Helleres blau oder die Schrift muss dickgeschrieben werden und schwarz.
- Bzgl. den Wörtern: Freie PHP Scripte, Das OneForum, Weitere Scripte, etc... (Unterpunkte)
Schwarzer Schatten weg! Wirkt ansonsten zerrend. Also andere Schrift wädafür wählen, oder einfach schwarz schreiben!
- Der Footer ist dir gelungen - wirkt auch nicht allzu überladend und gut strukturiert.
Aber im Footer würde ich den google, facebook und Twitter-Button ebenfalls mit nem mouseover-effekt überlegen.
Wenn man drüber geht, das dann eine andere Farbe aufleuchtet (Original-Farben?)
- Domain finde ich auch passend und einprägsam. Logo, bzw. Schriftzug ist nicht gerade einprägsam, aber dafür die Farbe im Zusammenhang des Namens. Also völlig ausreichend!

Viel Erfolg!
 
QUOTE (OneScripts @ Mo 27.02.2012, 20:01)[...] - Das der Quellcode für dich unsauber wirkt kann ich nicht nachvollziehen, er ist ordentlich und strukturiert geschrieben. Und wenn mal nicht alles so schön eingerückt ist, ist das aber kein Markel. [...]


Wenn ich in einen Quellcode folgendes zu sehen bekomme (siehe unten), ist das für mich unsauber. Gerade beim Programmieren ist sauberes Eindrücken das A & O. Von Englisch-Deutsch-Mix bei der Variablenbezeichnung wollen wir gar nicht erst groß anfangen.

Mal so als Beispiel aus der userlist.php (echo und SQL-Querys gekürzt):

CODE if(isset($_POST['submit'])){
$problem = FALSE;

if(empty($_POST['search'])){
$problem = TRUE;
echo '<p class="false">   Geben Sie einen Suchbegriff ein!</p>';
echo '<p>   [ <a href="userlist.php">Zur Suche</a> ]</p><br />';
}

if(!$problem){
$text = $_POST['search'];

$querys = "SELECT ...";

$results = mysql_query($querys);


if($results){

echo '...';

while ($row = mysql_fetch_array($results, MYSQL_ASSOC)){

echo '...';
}

echo '...';

}else{

echo '...';
}


Wobei hier noch eine SQL-Injektionslücke wäre, die ausgenutzt werden könnte. Und ich habe den Weg sauber zurückverfolgt bei den includes, das Ding wird ungefiltert übergeben, ok mit aktiven magic_quotes wohl nicht so das Problem, aber ohne, nur wenn das aktiv ist müssten die anderen Eingabedaten auch erst mal durch ein stripslashes, damit man sauber mit den Eingaben arbeiten kann, findet auch aber auch nicht statt:

CODE $text = $_POST['search'];

$querys = "SELECT user_id, user_name FROM users
WHERE user_name LIKE '%$text%' OR user_id LIKE '%$text%' OR user_email LIKE '%$text%'
ORDER BY user_id DESC";

$results = mysql_query($querys);

Und warum zum Teufel wird nach user_id sortiert und nicht nach user_name?





QUOTE [...] - Das mit dem BBCode kann man natürlich änder (wer ich auch machen), aber java alerts oder ähnliches kann man trotzdem nicht ausführen. Ich hab mit strip_tags dieses Problem verhindert (auch ausführlich getestet). [...]

strip_tags verhindert meinen hier aufgeführten und relativ simplen XSS nicht! Auch ist strip_tags alleine nicht wirklich berauschend um Sicherheit herzustellen, das ließ sich bisher mit etwas Aufwand trotzdem mit HTML-Tags füttern.
Wobei es unsinnig ist einen Forumsbeitrag komplett von HTML-Code zu bereinigen, sonst ist es als Forum nicht geeignet, es muss eigentlich kontrolliert und entschärft werden.





QUOTE [...]
- Zitat: Überflüssiger Programmcode wie $msg = $msg; oder <?php echo '' . $title . ''; ?>
Warum sollte $msg überflüssig sein, wenn ich an dieser Stelle eine Nachricht ausgeben möchte bei bedarf?
und echo $title liegt daran, damit natürlich der Seitentitel auch angezeigt wird, den der User in der config.php festgelegt hat.
[...]

Weil ein $msg = $msg bei einer Funktion die $msg als Übergabewert hat, total sinnlos ist, Du machst rein gar nichts mit der Anweisung, außer $msg $msg zuweisen...
Selbst wenn Du es ausgeben möchtest für Debug-Informationen, muss es nicht im Quellcode so stehen bleiben, oder könnte klar mit einer Debug-Flag ausgegrenzt werden, so dass klar wird, was das soll, oder es könnte auskommentiert dafür aber klar erkennbar als Ausgabe in der Zeile stehen. Aber eine Zuweisung auf sich selbst... Ganz ehrlich, das hört sich für mich gerade nur eher nach einen faulen Ausrede an.
Ich rede auch nicht vom $title sondern vom '', so was solltest Du eigentlich selber erkennen.





QUOTE [...]
- Zitat: seltame Programmzeilen, wie bspw. <li><a href="inbox.php?user_id=' . $_SESSION['user_id'] . '">Posteingang</a></li>
Was soll da komisch sein? Das ist ein Link zum Posteingang mit der dazuhörigen user id.
[...]

Weil die $_SESSION['user_id'] bei Übergabe der Session eh zur Verfügung stehen müsste, wozu diese also nochmal per GET-Methode übergeben? Selbst wenn die Session nicht als Cookie übergeben wird, wieso die UserID übergeben und nicht die Session?





QUOTE [...]
- Zitat: $_POST['submit']=='Passwort ändern' & Verwendung des veralteten MySQL-Moduls
Was passt dir daran nicht? Könntest du schon genauer definieren.
[...]

Das MySQL-Module fliegt ab PHP 6 raus und wird nur noch notdürftig gepflegt, daher ist für alle neuen Projekte MySQLi Pflicht, bzw. sollte auch für alte Projekte umgestellt werden, wenn es nicht einen triftigen Grund gibt, dies nicht zu tun.
$_POST['submit'] auf 'Passwort ändern' zu prüfen kann sehr schnell zu Problemen führen, spätestens dann wenn der PHP-Code als UTF-8 vorliegt und die Website ISO-8859-1 nutzt, oder umgekehrt. Außerdem verhindert so was die Internationalisierung des Scriptes, oder führt so Problemen, wenn jemand das Design anpassen möchte.





QUOTE [...] - sha1($_POST['password']) - Du meine Güte, da hab ich halt den escape string vergessen (stellt aber keine große sicherheitslücke dar - werd ich ändern) [...]

Davon habe ich nicht gesprochen, dass es eine Sicherheitslücke ist, nur weil es bei Einen vergessen wurde zu escapen (selbst wenn es hier gar nicht notwendig wäre). Es ist prinzipiell sogar unsinnig erst zu escapen und dann eine weitere Funktion zu nutzen bevor es in die DB wandert. Unsicher ist nur die Speichermethode in der Datenbank. SHA1 ist vorbei, bei HASHs sollte minimum SHA256 genommen werden.
Nur ohne Salten und Dehnen des Hashes ist das Ding so wie so relativ wenig Wert.




Das ist insgesamt kein Beinbruch für Personen die erst seit kurzen Programmieren oder mit PHP arbeiten, aber in welcher Art Du auf dieses Feedback reagierst, ist schon etwas Frech. Du tust so als ob Du es besser wüsstest, dabei zeigst Du eigentlich nur, wie wenig Du wirklich über diese Themen weißt.

Aktuell habe ich hier folgende Fehler gefunden, die Sicherheitsrelevant sind:
  • eine XSS-Lücke im BBCode (andere Felder wurden bisher nicht mal darauf geprüft)
  • keine CSRF Absicherung
  • SQL-Injektionlücke
  • Fehlende durchgehende Kontrolle und Behandlung von magic_quotes
  • Keine Überprüfung der Zeichenkodierung bei Eingabedaten
  • Keine Überprüfung auf schädliche Zeichen bei Eingabedaten
  • Keine Absicherung gegen Brute-Force-Angriffe auf das Login
  • Keine sichere Verwahrung der Passwörter
  • Preisgabe von Informationen nach außen (wie bspw. UserID)
  • Verwendung von Daten in der URL, die da nicht drin stehen sollte (die UserID des angemeldeten Benutzers)

Falls Du kein Feedback zu den Scripten haben wolltest, hättest Du nicht danach Fragen sollen...
 
QUOTE (Sascha Ahlers @ Do 1.03.2012, 03:33)
QUOTE (OneScripts @ Mo 27.02.2012, 20:01)[...] - Das der Quellcode für dich unsauber wirkt kann ich nicht nachvollziehen, er ist ordentlich und strukturiert geschrieben. Und wenn mal nicht alles so schön eingerückt ist, ist das aber kein Markel. [...]


Wenn ich in einen Quellcode folgendes zu sehen bekomme (siehe unten), ist das für mich unsauber.

100% ACK

der Code sieht gresslich aus


CODE
if
if
while
}
}
}



ich für meinen Teil, mach die "Beginn"Klammer aber immer unten hin, damit sie "linksbündig" gleichauf mit der Schließenden ist


CODE
if
{
if
{
while
{
}
}
}


und wenn ich dann rausfinden will welche zu welcher gehört
dann einfach auf eine drauf mit dem Cursor und nach oben oder unten scrollen
ist auch gut um zu"sehen" ob da eine fehlt,
z.B. wenn man CopxPaste nen Code zwischen Scripten austauscht
 
War wohl doch nur für ein Beitrag aller:

Pimp my statistic!
biggrin.gif



Ausbesserungen im Script keine im Sicht, aber nun alles verticken. Das Ausbessern wäre das mindestens gewesen, was man noch hätte machen können, bevor man es verkauft, insbesondere da man deswegen nicht unbedingt aus der Sache draußen ist.
 
Ich musste lächeln als ich deine Beitrag gelesen haben, war mir nicht sicher ob ernst gemeint oder lustig.
Warum bin ich nicht aus der Sache draußen? Ich habe keinerlei Verantwortung gegenüber denen die meine Scripte kostenlos benutzen wollen und beim Verkauf gehen sowieso alle Rechte an den neuen Besitzer über.

Mfg
 
QUOTE (OneScripts @ So 11.03.2012, 23:15) [...] und beim Verkauf gehen sowieso alle Rechte an den neuen Besitzer über. [...]

Nun ja, da Du die Scripte entwickelt hast, kann es durchaus sein, das Du diese noch nachbessern musst für den Käufer, insbesondere wenn diese Fehler (Bugs) oder Sicherheitslücken enthalten. Zu mindestens im deutschen Recht gibt es da oftmals gute Fallstricke.
 
Zurück
Oben