Ik heb mijn bestands-upload klasse flink verbeterd. Ik ga hem nog grondig testen en dan implementeren in mijn laatste project.
Het Wat heb jij vandaag geprogrammeerd? topic
Sebastiaanh schreef:Het was om te kijken wat mogelijk was ivm mysqli en functions + enkel voor beheerders uit te voeren. (Misschien handig voor in CMS)Pepijn, ben je nou serieus of wat? Je gaat mensen toch niet toestaan om allemaal PHP code uit te voeren?
Pepijnownt schreef:Nee óók dan is het niet handig.Het was om te kijken wat mogelijk was ivm mysqli en functions + enkel voor beheerders uit te voeren. (Misschien handig voor in CMS)Eerdere citaten tonen
Sebastiaanh schreef:Pepijn, ben je nou serieus of wat? Je gaat mensen toch niet toestaan om allemaal PHP code uit te voeren?
code geprogrammeerd dat als ik zelf ben ingelogd alleen bepaalde links kan zien en niemand anders
Robindb schreef:if(userId == 1)code geprogrammeerd dat als ik zelf ben ingelogd alleen bepaalde links kan zien en niemand anders
// link
?

Xjessex schreef:neeif(userId == 1)Eerdere citaten tonen
Robindb schreef:code geprogrammeerd dat als ik zelf ben ingelogd alleen bepaalde links kan zien en niemand anders
// link
?
wel soort iets
hele code
[COLOR= #0000BB]<?php[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700](![/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_SESSION[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]username[/COLOR][COLOR= #007700]]) &&[/COLOR] [URL="http://www.php.net/empty"]empty[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_SESSION[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]username[/COLOR][COLOR= #007700]]))
{[/COLOR]
[URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]" je bent niet ingelogd "[/COLOR][COLOR= #007700];
}[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #007700]{[/COLOR]
[URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]" je bent ingelogd als "[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/echo"]echo[/URL] [COLOR= #0000BB]$_SESSION[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]username[/COLOR][COLOR= #007700]];[/COLOR]
[URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]<a href="logout.php" class="btn btn-primary"><span class="glyphicon glyphicon-log-out"> LOG UIT</span></a>[/COLOR][COLOR= #007700];
}[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_SESSION[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]username[/COLOR][COLOR= #007700]] ==[/COLOR] robinjoo1[COLOR= #007700])
{[/COLOR]
[URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000] admin :-) [/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]<hr>[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]<a href="----weg gelaten ---------">database</a>[/COLOR][COLOR= #007700];
}[/COLOR]
?> Waarom sla je de gebruikersnaam op in een session?
Je kan het beste de id gebruiken
Je kan het beste de id gebruiken
Dionc schreef:hij haalt de gebruikers naam uit de sessie door middel van een idWaarom sla je de gebruikersnaam op in een session?
Je kan het beste de id gebruiken
if($data[founds] != 0) {
$result = $mysql->query("SELECT id, username FROM users WHERE username = ".$mysql->real_escape_string($_POST[username])." LIMIT 1");
$result = $result->fetch_assoc();
$_SESSION[id] = $result[id];
$_SESSION[username] = $result[username];
header("Location: index.php"); Robindb schreef:Maar dan snap ik niet waarom je dan een sessie maakt met de usernameJe kan het beste de id gebruikenEerdere citaten tonen
Dionc schreef:Waarom sla je de gebruikersnaam op in een session?
hij haalt de gebruikers naam uit de sessie door middel van een idif($data[founds] != 0) { $result = $mysql->query("SELECT id, username FROM users WHERE username = ".$mysql->real_escape_string($_POST[username])." LIMIT 1"); $result = $result->fetch_assoc(); $_SESSION[id] = $result[id]; $_SESSION[username] = $result[username]; header("Location: index.php");
Je kan hem dan toch gewoon ophalen uit de database?
Want als je de gebruikersnaam veranderd dan toont ie de oude aan totdat je uitlogt
En als je die sessie gebruikt om dingen op te slaan in de DB dan klopt het niet meer als je eenmaal de naam hebt gewijzigd...
Dionc schreef:Eh nee.Waarom sla je de gebruikersnaam op in een session?
Je kan het beste de id gebruiken
Dat is best onveilig

Altijd hash gebruiken welke moeilijk te raden is.
Stel, jouw website slaat je user id in een sessie.
Het is bèst makkelijk om achter een user id te komen op menig website.
En als ik ergens op jouw website een url tussen img tags zet, bijvoorbeeld
//reitsma.co/image.jpg
image.jpg kan bijvoorbeeld een script bevatten, en met rewrite url (nginx config of htaccess) kan je het bestand heel eenvoudig image.jpg noemen.
Als jij als admin nou mijn plaatje ziet, bijvoorbeeld in een privebericht of op het forum dan doe jij een request naar image.jpg
image.jpg is dan eigenlijk een script, met de headers van een image (en om het onschuldig te laten lijken geeft hij als output ook een image)
Wat dat script doet is jouw cookie opslaan (document.cookie) welke ook het PHPSESSIONID bevat, dan verander je jouw PHPSESSIONID cookie in dat van die admin op die website, en je hebt toegang tot de $_SESSION van de admin.
Wat je dus moet doen is, een hash als cookie of sessie gebruiken, en élke pageview moet je die hash selecteren uit de database en kijken of het ip adres + useragent gelijk is aan dat van de bezoeker dat de hash heeft.
Zo niet: direct uitloggen. (Niet direct blokkeren, kan zijn dat hij zijn browser geüpdatet heeft)
document.cookie kan je niet zomaar op alle websites uitvoeren, als een website overal beveiligd is tegen xss kan je altijd nog een browser extension maken (bijvoorbeeld voor chrome) en de admin deze laten installeren.
"Kijk eens, ik heb een coole make-over voor je website gemaakt, wat vind je?"
Veel mensen installeren dit wel, en na de eerste pageview heb jij dus als zijn cookies voor die website. Fuck u xss beveiliging.
Xjessex schreef:TL;DRJe kan het beste de id gebruikenEerdere citaten tonen
Dionc schreef:Waarom sla je de gebruikersnaam op in een session?
Eh nee.
Dat is best onveilig
Altijd hash gebruiken welke moeilijk te raden is.
Stel, jouw website slaat je user id in een sessie.
Het is bèst makkelijk om achter een user id te komen op menig website.
En als ik ergens op jouw website een url tussen img tags zet, bijvoorbeeld
//reitsma.co/image.jpg
image.jpg kan bijvoorbeeld een script bevatten, en met rewrite url (nginx config of htaccess) kan je het bestand heel eenvoudig image.jpg noemen.
Als jij als admin nou mijn plaatje ziet, bijvoorbeeld in een privebericht of op het forum dan doe jij een request naar image.jpg
image.jpg is dan eigenlijk een script, met de headers van een image (en om het onschuldig te laten lijken geeft hij als output ook een image)
Wat dat script doet is jouw cookie opslaan (document.cookie) welke ook het PHPSESSIONID bevat, dan verander je jouw PHPSESSIONID cookie in dat van die admin op die website, en je hebt toegang tot de $_SESSION van de admin.
Wat je dus moet doen is, een hash als cookie of sessie gebruiken, en élke pageview moet je die hash selecteren uit de database en kijken of het ip adres + useragent gelijk is aan dat van de bezoeker dat de hash heeft.
Zo niet: direct uitloggen. (Niet direct blokkeren, kan zijn dat hij zijn browser geüpdatet heeft)
document.cookie kan je niet zomaar op alle websites uitvoeren, als een website overal beveiligd is tegen xss kan je altijd nog een browser extension maken (bijvoorbeeld voor chrome) en de admin deze laten installeren.
"Kijk eens, ik heb een coole make-over voor je website gemaakt, wat vind je?"
Veel mensen installeren dit wel, en na de eerste pageview heb jij dus als zijn cookies voor die website. Fuck u xss beveiliging.
Koppel een sessie aan een IP + useragent en sessie stelen wordt al een stuk lastiger. Dit kan via een database maar hoeft niet.
(Voorkom XSS lekken ook.)
Sevvlor schreef:Dus als de IP en useragent niet klopt gewoon laten uitloggen?TL;DREerdere citaten tonen
Xjessex schreef:Je kan het beste de id gebruikenEerdere citaten tonen
Dionc schreef:Waarom sla je de gebruikersnaam op in een session?
Eh nee.
Dat is best onveilig
Altijd hash gebruiken welke moeilijk te raden is.
Stel, jouw website slaat je user id in een sessie.
Het is bèst makkelijk om achter een user id te komen op menig website.
En als ik ergens op jouw website een url tussen img tags zet, bijvoorbeeld
//reitsma.co/image.jpg
image.jpg kan bijvoorbeeld een script bevatten, en met rewrite url (nginx config of htaccess) kan je het bestand heel eenvoudig image.jpg noemen.
Als jij als admin nou mijn plaatje ziet, bijvoorbeeld in een privebericht of op het forum dan doe jij een request naar image.jpg
image.jpg is dan eigenlijk een script, met de headers van een image (en om het onschuldig te laten lijken geeft hij als output ook een image)
Wat dat script doet is jouw cookie opslaan (document.cookie) welke ook het PHPSESSIONID bevat, dan verander je jouw PHPSESSIONID cookie in dat van die admin op die website, en je hebt toegang tot de $_SESSION van de admin.
Wat je dus moet doen is, een hash als cookie of sessie gebruiken, en élke pageview moet je die hash selecteren uit de database en kijken of het ip adres + useragent gelijk is aan dat van de bezoeker dat de hash heeft.
Zo niet: direct uitloggen. (Niet direct blokkeren, kan zijn dat hij zijn browser geüpdatet heeft)
document.cookie kan je niet zomaar op alle websites uitvoeren, als een website overal beveiligd is tegen xss kan je altijd nog een browser extension maken (bijvoorbeeld voor chrome) en de admin deze laten installeren.
"Kijk eens, ik heb een coole make-over voor je website gemaakt, wat vind je?"
Veel mensen installeren dit wel, en na de eerste pageview heb jij dus als zijn cookies voor die website. Fuck u xss beveiliging.
Koppel een sessie aan een IP + useragent en sessie stelen wordt al een stuk lastiger. Dit kan via een database maar hoeft niet.
(Voorkom XSS lekken ook.)
Dionc schreef:Yep, helemaal.Dus als de IP en useragent niet klopt gewoon laten uitloggen?Eerdere citaten tonen
Sevvlor schreef:TL;DREerdere citaten tonen
Xjessex schreef:Je kan het beste de id gebruikenEerdere citaten tonen
Dionc schreef:Waarom sla je de gebruikersnaam op in een session?
Eh nee.
Dat is best onveilig
Altijd hash gebruiken welke moeilijk te raden is.
Stel, jouw website slaat je user id in een sessie.
Het is bèst makkelijk om achter een user id te komen op menig website.
En als ik ergens op jouw website een url tussen img tags zet, bijvoorbeeld
//reitsma.co/image.jpg
image.jpg kan bijvoorbeeld een script bevatten, en met rewrite url (nginx config of htaccess) kan je het bestand heel eenvoudig image.jpg noemen.
Als jij als admin nou mijn plaatje ziet, bijvoorbeeld in een privebericht of op het forum dan doe jij een request naar image.jpg
image.jpg is dan eigenlijk een script, met de headers van een image (en om het onschuldig te laten lijken geeft hij als output ook een image)
Wat dat script doet is jouw cookie opslaan (document.cookie) welke ook het PHPSESSIONID bevat, dan verander je jouw PHPSESSIONID cookie in dat van die admin op die website, en je hebt toegang tot de $_SESSION van de admin.
Wat je dus moet doen is, een hash als cookie of sessie gebruiken, en élke pageview moet je die hash selecteren uit de database en kijken of het ip adres + useragent gelijk is aan dat van de bezoeker dat de hash heeft.
Zo niet: direct uitloggen. (Niet direct blokkeren, kan zijn dat hij zijn browser geüpdatet heeft)
document.cookie kan je niet zomaar op alle websites uitvoeren, als een website overal beveiligd is tegen xss kan je altijd nog een browser extension maken (bijvoorbeeld voor chrome) en de admin deze laten installeren.
"Kijk eens, ik heb een coole make-over voor je website gemaakt, wat vind je?"
Veel mensen installeren dit wel, en na de eerste pageview heb jij dus als zijn cookies voor die website. Fuck u xss beveiliging.
Koppel een sessie aan een IP + useragent en sessie stelen wordt al een stuk lastiger. Dit kan via een database maar hoeft niet.
(Voorkom XSS lekken ook.)
Sevvlor schreef:Oke bedanktYep, helemaal.Eerdere citaten tonen
Dionc schreef:Dus als de IP en useragent niet klopt gewoon laten uitloggen?Eerdere citaten tonen
Sevvlor schreef:TL;DREerdere citaten tonen
Xjessex schreef:Je kan het beste de id gebruikenEerdere citaten tonen
Dionc schreef:Waarom sla je de gebruikersnaam op in een session?
Eh nee.
Dat is best onveilig
Altijd hash gebruiken welke moeilijk te raden is.
Stel, jouw website slaat je user id in een sessie.
Het is bèst makkelijk om achter een user id te komen op menig website.
En als ik ergens op jouw website een url tussen img tags zet, bijvoorbeeld
//reitsma.co/image.jpg
image.jpg kan bijvoorbeeld een script bevatten, en met rewrite url (nginx config of htaccess) kan je het bestand heel eenvoudig image.jpg noemen.
Als jij als admin nou mijn plaatje ziet, bijvoorbeeld in een privebericht of op het forum dan doe jij een request naar image.jpg
image.jpg is dan eigenlijk een script, met de headers van een image (en om het onschuldig te laten lijken geeft hij als output ook een image)
Wat dat script doet is jouw cookie opslaan (document.cookie) welke ook het PHPSESSIONID bevat, dan verander je jouw PHPSESSIONID cookie in dat van die admin op die website, en je hebt toegang tot de $_SESSION van de admin.
Wat je dus moet doen is, een hash als cookie of sessie gebruiken, en élke pageview moet je die hash selecteren uit de database en kijken of het ip adres + useragent gelijk is aan dat van de bezoeker dat de hash heeft.
Zo niet: direct uitloggen. (Niet direct blokkeren, kan zijn dat hij zijn browser geüpdatet heeft)
document.cookie kan je niet zomaar op alle websites uitvoeren, als een website overal beveiligd is tegen xss kan je altijd nog een browser extension maken (bijvoorbeeld voor chrome) en de admin deze laten installeren.
"Kijk eens, ik heb een coole make-over voor je website gemaakt, wat vind je?"
Veel mensen installeren dit wel, en na de eerste pageview heb jij dus als zijn cookies voor die website. Fuck u xss beveiliging.
Koppel een sessie aan een IP + useragent en sessie stelen wordt al een stuk lastiger. Dit kan via een database maar hoeft niet.
(Voorkom XSS lekken ook.)

Dionc schreef:Overigens ben ik erg benieuwd hoe je het gaat oplossen.Oke bedanktEerdere citaten tonen
Sevvlor schreef:Yep, helemaal.Eerdere citaten tonen
Dionc schreef:Dus als de IP en useragent niet klopt gewoon laten uitloggen?Eerdere citaten tonen
Sevvlor schreef:TL;DREerdere citaten tonen
Xjessex schreef:Je kan het beste de id gebruikenEerdere citaten tonen
Dionc schreef:Waarom sla je de gebruikersnaam op in een session?
Eh nee.
Dat is best onveilig
Altijd hash gebruiken welke moeilijk te raden is.
Stel, jouw website slaat je user id in een sessie.
Het is bèst makkelijk om achter een user id te komen op menig website.
En als ik ergens op jouw website een url tussen img tags zet, bijvoorbeeld
//reitsma.co/image.jpg
image.jpg kan bijvoorbeeld een script bevatten, en met rewrite url (nginx config of htaccess) kan je het bestand heel eenvoudig image.jpg noemen.
Als jij als admin nou mijn plaatje ziet, bijvoorbeeld in een privebericht of op het forum dan doe jij een request naar image.jpg
image.jpg is dan eigenlijk een script, met de headers van een image (en om het onschuldig te laten lijken geeft hij als output ook een image)
Wat dat script doet is jouw cookie opslaan (document.cookie) welke ook het PHPSESSIONID bevat, dan verander je jouw PHPSESSIONID cookie in dat van die admin op die website, en je hebt toegang tot de $_SESSION van de admin.
Wat je dus moet doen is, een hash als cookie of sessie gebruiken, en élke pageview moet je die hash selecteren uit de database en kijken of het ip adres + useragent gelijk is aan dat van de bezoeker dat de hash heeft.
Zo niet: direct uitloggen. (Niet direct blokkeren, kan zijn dat hij zijn browser geüpdatet heeft)
document.cookie kan je niet zomaar op alle websites uitvoeren, als een website overal beveiligd is tegen xss kan je altijd nog een browser extension maken (bijvoorbeeld voor chrome) en de admin deze laten installeren.
"Kijk eens, ik heb een coole make-over voor je website gemaakt, wat vind je?"
Veel mensen installeren dit wel, en na de eerste pageview heb jij dus als zijn cookies voor die website. Fuck u xss beveiliging.
Koppel een sessie aan een IP + useragent en sessie stelen wordt al een stuk lastiger. Dit kan via een database maar hoeft niet.
(Voorkom XSS lekken ook.)