Ja dat dacht ik ook, maar hoe kán hij dan inbreken?quote:Op zondag 28 november 2004 23:23 schreef mschol het volgende:
[..]
als er een chmod 777 oip staat en een heacker weet in te breken kan hij in de mappen met chmod ALLES (verwijderen toevoegen etc...) en dan kan hij.zij dus malifiede scripts draaien om bijvoorbeeld te spammen, wachtwoord gegevens uitlezen, klant gegevens uitlezen noem mmaar op ALLES kan en dat is wat mensen er tegen hebben. (imo)
Een 'hacker' kan in een map die mode 777 heeft hetzelfde als jij in principe. Dus bestanden maken, verwijderen, overschrijven, mappen maken, verwijderen, etc.quote:Op zondag 28 november 2004 23:57 schreef huiz het volgende:
Hmjah, dat dacht ik ook eigenlijk.
Maar ik laad nooit scripts op die manier, gooi er altijd een switch tussen. En in mijn geval gaat het altijd om een submap om afbeeldingen te uploaden waarbij én op extensie én op inhoud gecheckt wordt of het een afbeelding betreft. Dus het leek me al niet zo'n probleem.
Maar door al die paniekerige kreten dat zo'n map vogelvrij is, dacht ik (als beginnende php'er met een fobie voor beveiliging) dat het wel schandalig moet zijn om chmod 777 te gebruiken. Maar nergens lees ik hoe en wat een hacker kan doen in zo'n map
Als ik via php iets upload dan moet die map op 777 staan omdat ie anders er geen foto in kan plaatsen, maar is het dan beter om voor het uploaden op 777 zetten en daarna weer op 755, of is het voldoende om te zorgen dat je scripts veilig genoeg zijn?
Jaaamaaar... hoe kan hij via de browser een map aanmaken? Ik zie in browsers nergens een optie om een nieuwe map te maken. Bovendien zet ik in elke map een redirect index.html of sluit 'm af via Apache als er geen index in zit.quote:Op maandag 29 november 2004 15:30 schreef ToMaSZ het volgende:
[..]
Een 'hacker' kan in een map die mode 777 heeft hetzelfde als jij in principe. Dus bestanden maken, verwijderen, overschrijven, mappen maken, verwijderen, etc.
Niet heel erg aan te raden in de img-dir van je site dus. Je kan echter een map aanmaken via de browser, in een andere map die voor de gelegenheid op 777 staat. Die zet je terug en de map die je net hebt aangemaakt is writeable vanuit de browser, omdat de www-user hem heeft aangemaakt en dus in 'eigendom' heeft.
Vanuit de browser... knap lastig, tenzij hij dus een bijv. php-scriptje schrijft, waarmee hij in je filesystem gaat spelen.quote:Op maandag 29 november 2004 15:46 schreef huiz het volgende:
[..]
Jaaamaaar... hoe kan hij via de browser een map aanmaken? Ik zie in browsers nergens een optie om een nieuwe map te maken. Bovendien zet ik in elke map een redirect index.html of sluit 'm af via Apache als er geen index in zit.
Ik krijg toch steeds meer het idee dat een 777-gechmodde map heel wat minder onveilig is als iedereen loopt te roepen. En dat de meesten ook niet precies weten wat het probleem dan is
Juist. En hoe krijgt hij dan dat scriptje in mijn map? En als ik het bekijken van zo'n map blokkeer, hoe kan ie dat dan zien?quote:Op maandag 29 november 2004 16:02 schreef ToMaSZ het volgende:
[..]
Vanuit de browser... knap lastig, tenzij hij dus een bijv. php-scriptje schrijft, waarmee hij in je filesystem gaat spelen.
En kan je dat zien, niet zomaar, dat moet je proberen, of scannen op open directories, vanuit een drectory listing kun je dan weer de rechten van een map zien.
(dit gaat toevallig over phpnuke ofzo, maar dat geeft niet )quote:[Someone suggested 777 but doesn't that mean they can hack my site?]
Yes, if users need to upload files to a directory then the dir will need 777 (well, it could be 707 but we'll say 777 for simplicities sake)...
Make sure the *only* directory you set to 777 is the one they are uploading to. The biggest problem is that if files are uploaded, such as .php or .sh files, they can be run on the web server from a remote browser.. And yes, this means people have the potential to cause damage... However - making it 777 doesn't automatically place you at risk - there are a few more factors to consider:
The upload directories location:
If the root of your website is in /home/username/public_html but you have your uploads stored in /home/username/uploaded_files there is no way someone can access these files with their browser... However if you store your files in /home/username/public_html/uploaded_files you can be at risk... Check your modules' config to see if you can specify where the upload directory lives - and if possible make it somewhere out of your web servers path.
The module's built in security:
Most modules that let you upload files have some sort of checkign facility that only allows certain file types to be uploaded. If people are only uploading .gif / .jpg / etc files - you have no probs with using this module to hack your site.. (as long as there aren't any real security holes in the module itself)...
Kijk, dit is betere informatiequote:Op dinsdag 30 november 2004 17:14 schreef Heliospan het volgende:
Je kan niet zomaar inbreken als iemand een map op 777 heeft staan, voor sommige scripts is dat zelfs een vereiste. Je moet alleen wel kijken wat voor script je hebt en hoe je die zelf in elkaar hebt gezet. Als je een afbeeldinguploader hebt die zonder problemen .PHP-bestanden door laat, dan ben je gewoon dom bezig.
[..]
(dit gaat toevallig over phpnuke ofzo, maar dat geeft niet )
-edit-
Ik zit iemand vals te beschuldigen van verkeerde informatie geven, excuus
Ik heb Het Complete Handboek PHP 4 en die is wel redelijk compleet te noemen. Wel zitten er een aantal fouten in en je moet niet alles geloven wat ze beweren, maar als je nog van niks weet dan is het een leerzaam boek.quote:Op dinsdag 30 november 2004 17:06 schreef JortK het volgende:
Weet iemand nog een goed boek om PHP uit te leren (het liefst nederlands talig )
Want heb op bol.com een paar boeken erover gezien maar weet niet welke goed zijn en welke niet
1 2 3 4 5 6 7 | <?php if($_SERVER['SCRIPT_NAME'] == __FILE__) { header('Location: http://www.mysite.com/' color="#007700">); exit(''); } ?> |
define 'het', en wat gebeurt er in asp?quote:maar kun je het niet gewoon in een PHP file zetten dus bijvoorbeeld db_inc.php en die aanroepen zoals ook met ASP gebeurd ?
Waarom maak je er geen .php van?quote:Op zondag 5 december 2004 09:50 schreef BlueCurl het volgende:
stel je hebt een hele mooie inc bestand met daarin de functie om je db te openen die je aanroept... alleen nu zit ik met het probleem dat .inc bestanden gewoon worden weeregeven als je ze in de adresblak intypt. is daar geen betere manier voor?
1 | <? echo htmlentities($row['price'],ISO8859-15); ?> |
of je gebruik bestandsnamen als config.inc.php, veilig, geen gekut met .htaccess en je kan nog steeds in 1 oogopslag zien wat het moet doenquote:Op zondag 5 december 2004 09:50 schreef BlueCurl het volgende:
stel je hebt een hele mooie inc bestand met daarin de functie om je db te openen die je aanroept... alleen nu zit ik met het probleem dat .inc bestanden gewoon worden weeregeven als je ze in de adresblak intypt. is daar geen betere manier voor?
Moetquote:Op maandag 6 december 2004 22:48 schreef Swetsenegger het volgende:
[ code verwijderd ]
Dit zet het euro teken niet om naar een html entity hetgeen m'n validatie verneukt
Wat doe ik fout? Ik twijfel over de charset optie (of ik die goed gebruik, het is iig wel de charset welke het euroteken ondersteunt).
1 | <? echo htmlentities($row['price'], ISO8859-15); ?> |
1 | <? echo htmlentities($row['price'], ENT_COMPAT, ISO8859-15); ?> |
Hmz, dat zou betekenen dat je optie 3 nooit zonder twee kan gebruiken of zouquote:Op maandag 6 december 2004 23:18 schreef SuperRembo het volgende:
[..]
Moet
[ code verwijderd ]
niet
[ code verwijderd ]
zijn?
Mjah, dat zou betekenen dat je de derde optie nooit kan gebruiken zonder de tweede of zou
1 | <? echo htmlentities($row['price'], , ISO8859-15); ?> |
1 2 3 | $query = "UPDATE albumtb SET albumnaam = '$new_name' WHERE albumnaam = '$album'";[/code |
1 | SET albumnaam = '".addslashes($new_name)."' |
Neu hoor, dat is totaal overbodig.quote:Op woensdag 8 december 2004 01:23 schreef Heliospan het volgende:
stripslashes om de slashes weer weg te halen bij het lezen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $query='SELECT * FROM tekst'; $query_begrip='SELECT * FROM begrippen'; $result=mysql_query($query); $result_begrip=mysql_query($query_begrip); while($row=mysql_fetch_array($result)){ while($row_begrip=mysql_fetch_array($result_begrip)){ $begrip="{$row_begrip['begrip']}"; $short_text=str_replace($begrip,"<a href=\"begrippen.php#$begrip\" />$begrip</a>",$row['short_text']);} ?> </tr><tr> <td style="vertical-align:top; width:33%;"> <div class="header"><img src="<? print"headers/{$row['name']}.jpg"; ?>" alt="pakketlogo" /></div> <div class="package"><? print"$short_text"; ?> <p>vanaf <span style="font-size:14pt; font-weight:bold; color:#2DB017;"><? echo htmlentities($row['price'],ISO8859-15); ?></span></p> <div style="text-align:right"><? print"<a href=\"paketten.php?id={$row['id']}\">"; ?>meer... <img src="image/meer.gif" style="border-width:0px;" alt="meer" /></a></div></div></td> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | $query='SELECT * FROM pakketten'; $result=mysql_query($query); $kolom=0; while($row=mysql_fetch_array($result)){ $query_begrip='SELECT * FROM begrippen'; $result_begrip=mysql_query($query_begrip); while($row_begrip=mysql_fetch_array($result_begrip)){ $begrip="{$row_begrip['begrip']}"; $short_text=str_replace($begrip,"<a href=\"begrippen.php#$begrip\" />$begrip</a>",$row['short_text']);} ?> <td style="vertical-align:top; width:33%;"> <div class="header"><img src="<? print"headers/{$row['name']}.jpg"; ?>" alt="pakketlogo" /></div> <div class="package"><? print"$short_text"; ?> <p>vanaf <span style="font-size:14pt; font-weight:bold; color:#2DB017;"><? echo htmlentities($row['price'],ISO8859-15); ?></span></p> <div style="text-align:right"><? print"<a href=\"paketten.php?id={$row['id']}\">"; ?>meer... <img src="image/meer.gif" style="border-width:0px;" alt="meer" /></a></div></div></td> <? }} ?> |
1 2 3 4 5 | $query_begrip='SELECT * FROM begrippen'; $result_begrip=mysql_query($query_begrip); while($row_begrip=mysql_fetch_array($result_begrip)){ $begrip="{$row_begrip['begrip']}"; $short_text=str_replace($begrip,"<a href=\"begrippen.php#$begrip\" />$begrip</a>",$row['short_text']);} |
1 2 3 4 5 6 7 8 | CREATE TABLE `sc_matches` ( `matchid` int(6) unsigned NOT NULL auto_increment, `player1` tinyint(4) default NULL, `player2` tinyint(4) default NULL, `winst` tinyint(1) default NULL, `date` int(11) default NULL, PRIMARY KEY (`matchid`) ) TYPE=MyISAM; |
*kick*quote:Op woensdag 8 december 2004 21:08 schreef mschol het volgende:
oke een echte dummie vraag :
ik wil op een op een link pagina een url laten zien of gewoon tekst, dit is afhankelijk of Emule draait...
nou komt me vraag:
hoe kan ik checken of Emule draait..
ik kon mij vaag iets herinneren dat dit met sockect_connect zou moeten werken
maar ik krijg op die function een fatal error met dat de functie niet bestaat..
zie hier mijn phpinfo phpinfo
wat doe ik verkeerd???
wat kan ik hieraan doen, zie ik wat over het hoofd of wat???
http://nl2.php.net/socketsquote:
ff zoekenquote:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php print '</div><br />'; $ip=255.255.255.255; $port=80; $fp = fsockopen($ip, $port, $errno, $errstr, 4); if (!$fp) { print "<div class=\"ticker\"><br /><a href=\"cam.php\" style=\"font-size:7pt;\">Swets-Cam</a> :<span style=\"color:#ff0000;\"> Uit.</span><br /><br /></div><br />\n\n"; fclose($fp); } else { print "<div class=\"ticker\"><br /><a href=\"cam.php\" style=\"font-size:7pt;\">Swets-Cam</a> :<span style=\"color:#00ffff;\"> Aan!</span><br /><br /></div><br />\n\n"; } ?> |
1 2 3 | <?php echo htmlentities($row['price'], ENT_COMPAT, ISO-8859-15); ?> |
quote:ISO-8859-15 ISO8859-15 Western European, Latin-9. Adds the Euro sign, French and Finnish letters missing in Latin-1(ISO-8859-1).
Your my Heroquote:Op donderdag 9 december 2004 13:31 schreef Swetsenegger het volgende:
[..]
ff zoeken
Om te checken of mijn webcam aanstaat doe ik het volgende:
[ code verwijderd ]
Deze code probeert een socketverbinding op te zetten op IP $ip met poort $port..
De time out staat op 4 seconde.
Heb je hier wat aan?
Yw...quote:Op donderdag 9 december 2004 17:08 schreef mschol het volgende:
[..]
Your my Hero
das exact wat ik nodig heb...
Hij checked alleen on load.quote:Op donderdag 9 december 2004 17:21 schreef Roönaän het volgende:
Het makkelijkst is dus om zulke geintjes te combineren met simpelweg een image of iets dergelijks.
Gewoon <img src="camstate.php?ext=.png" /> en dan geeft die een aan of een uit image terug.
Heb je ook geen delay in je webpage eigenlijk.
Om de load te verlichten zou je via een cache bij kunnen houden dat hij maar 1 keer per 5 minuten checked ofzo, alhoewel de traffic van zulke dingen minimaal is natuurlijk.
-r-
yup ,je cam had ik idd al gezien.quote:Op donderdag 9 december 2004 17:12 schreef Swetsenegger het volgende:
[..]
Yw...
ik heb me toen het lazerus gezocht. Ook op phpfreakz heeft er zelfs maar iemand een reactie gepost hoe ik dit moest oplossen.
Als je ff op www.123swets.com kijkt zie je de code in actie (hij zal 'uit' retouneren.) Wel handig om te kijken, want gedurende de time-out periode wordt er GEEN html geparst. Je kijkt dus 4 seconde lang naar een half leeg scherm. Het is dus zaak om die time-out zo krap mogelijk te zetten.
Bij 3 seconde merkte ik dat het niet echt betrouwbaar was, omdat er dan soms 'uit' retour kwam terwijl de cam wel aanstond.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php $portnr = "4711"; $host = "fia181-83.dsl.hccnet.nl"; $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); $fp = socket_connect($socket,$host,$portnr); if($fp) { print "<tr><td><span><a href='http://".$host.":".$portnr."'>Emule is running</a></span></td></tr>"; } else { print "<tr><td><span>Emule isn't running</span></td></tr>"; } ?> |
Iemand?quote:Op donderdag 9 december 2004 16:58 schreef Swetsenegger het volgende:
waarom wordt m'n euroteken nou niet geencodeerd?
[ code verwijderd ]
http://nl3.php.net/htmlentities
[..]
Het euro-teken wordt gewoon niet vervangen. Het staat niet in de translation table.quote:
quote:Op donderdag 9 december 2004 22:35 schreef SuperRembo het volgende:
[..]
Het euro-teken wordt gewoon niet vervangen. Het staat niet in de translation table.
Waarom wil je 'm vervangen? Als je overal dezelfde encoding gebruikt dan heeft niemand er last van.
quote:Table 2. Supported charsets
Charset Aliases Description
ISO-8859-1 ISO8859-1 Western European, Latin-1
ISO-8859-15 ISO8859-15 Western European, Latin-9. Adds the Euro sign, French and Finnish letters missing in Latin-1(ISO-8859-1).
UTF-8 ASCII compatible multi-byte 8-bit Unicode.
cp866 ibm866, 866 DOS-specific Cyrillic charset. This charset is supported in 4.3.2.
cp1251 Windows-1251, win-1251, 1251 Windows-specific Cyrillic charset. This charset is supported in 4.3.2.
cp1252 Windows-1252, 1252 Windows specific charset for Western European.
KOI8-R koi8-ru, koi8r Russian. This charset is supported in 4.3.2.
BIG5 950 Traditional Chinese, mainly used in Taiwan.
GB2312 936 Simplified Chinese, national standard character set.
BIG5-HKSCS Big5 with Hong Kong extensions, Traditional Chinese.
Shift_JIS SJIS, 932 Japanese
EUC-JP EUCJP Japanese
Ja, dat probleem heb ik dus ookquote:Op donderdag 9 december 2004 23:05 schreef SuperRembo het volgende:
Ok, dat is idd wel vreemd.
Met default_charset = "iso-8859-15" in php.ini of ini_set('default_charset', 'iso-8859-15') merkte ik ook geen verschil.
Ik heb de charset als metatag opgegeven en ook dan valideert w3c niet.quote:Op vrijdag 10 december 2004 09:58 schreef Roönaän het volgende:
Stomme vraag, als je iso-8859-15 opgeeft als derde parameter, is je euroteken dan ook wel een euroteken in die charset?
En het lijkt mij dat je best een plat euroteken kan gebruiken, mits je de goede charset opgeeft toch? Anders zou je ook geen é of een á kunnen gebruiken, wat wel degelijk mogelijk is.
1 2 3 4 5 6 7 8 9 10 11 | <?php global $strDesc; global $fileUpload; global $fileUpload_name; global $fileUpload_size; global $fileUpload_type; ?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |