Vinnaren i pepparkakshustävlingen!
2018-05-01, 13:11
  #1
Medlem
Finns det nån färdig kod eller hjälpmedel som gör följande.

En ruta där jag fyller i email. En knapp spara eller ok.

När någon fyller i och trycker ok så sparas dennes email ''här''

Kod:
<?php $to "1här"?>

När någon mer fyller i så blir det så här.

Kod:
<?php $to "1här, 2här"?>

När någon mer fyller i så blir det så här.

Kod:
<?php $to "1här, 2här, 3här"?>
Citera
2018-05-01, 13:16
  #2
Medlem
Jag tror inte det finns någon färdig lösning som gör det du vill ha, men det borde gå att manipulera filer med PHP och då gäller det "bara" att ta reda på hur det skall göras.

Dock har jag en fråga: varför inte stoppa in allt i en databas istället? Då blir det bra mycket smidigare för dig att underhålla systemet (tänk ta bort gamla emailadresser) och du slipper försöka hantera en PHP-fil som kan bli väldigt stor.
Citera
2018-05-01, 13:35
  #3
Medlem
vtcs avatar
Den typen av lösning ser både opraktisk och potentiellt osäker ut. Det kommer inte att sluta väl för din server om du råkar spara en mailadress som innehåller citattecken, till exempel. Lek med tanken att någon sparar "adressen"
Kod:
test@example.com";do_evil_stuff();$x="hej
Då kommer din fil att se ut så här:
Kod:
<?php $to "1här, 2här, test@example.com";do_evil_stuff();$x="hej"?>
Funktionsnamnet "do_evil_stuff()" används bara som ett exempel - en angripare skulle rimligen stoppa in något som faktiskt är farligt där istället, vilket kommer att exekveras när någon besöker sidan.

Gör som xpqr12345 föreslog och spara till en databas istället. Om någon skulle lyckas stoppa in en ogiltig mailadress så kommer det i alla fall inte leda till att din server blir kapad
Citera
2018-05-01, 14:00
  #4
Medlem
Citat:
Ursprungligen postat av vtc
Den typen av lösning ser både opraktisk och potentiellt osäker ut. Det kommer inte att sluta väl för din server om du råkar spara en mailadress som innehåller citattecken, till exempel. Lek med tanken att någon sparar "adressen"
Kod:
test@example.com";do_evil_stuff();$x="hej
Då kommer din fil att se ut så här:
Kod:
<?php $to "1här, 2här, test@example.com";do_evil_stuff();$x="hej"?>
Funktionsnamnet "do_evil_stuff()" används bara som ett exempel - en angripare skulle rimligen stoppa in något som faktiskt är farligt där istället, vilket kommer att exekveras när någon besöker sidan.

Gör som xpqr12345 föreslog och spara till en databas istället. Om någon skulle lyckas stoppa in en ogiltig mailadress så kommer det i alla fall inte leda till att din server blir kapad

Tack för hjälpen tänkte inte på det.
Citera
2018-05-01, 14:33
  #5
Medlem
Oavsett hur du gör till slut så måste du se till att behandla allt som användarna matar in i fält, så att det inte ställer till något för dig. Om du inte gör det kan det gå så här. Detta gäller förresten all data som varit hos användaren, även tex cookies.
Citera
2018-05-01, 15:07
  #6
Medlem
vtcs avatar
Citat:
Ursprungligen postat av xpqr12345
Oavsett hur du gör till slut så måste du se till att behandla allt som användarna matar in i fält, så att det inte ställer till något för dig. Om du inte gör det kan det gå så här. Detta gäller förresten all data som varit hos användaren, även tex cookies.
Mycket riktigt.

Använder man prepared statements på rätt vis (istället för att bara bygga ihop strängar till en SQL-query) så blir det både snygg kod och automatiskt säkert.
Citera
2018-05-01, 15:53
  #7
Medlem
Och på tal om cookies, i säkerhetssammanhang: du bör inte lagra någon data alls i en cookie, annat än ett slumpartat ID-nummer eller liknande. Sedan använder du databaser för att koppla användarens cookie till allt den måste kopplas till.

Jag har nämligen hört/läst någonstans att i början på internet-eran så var där en e-handel som hade kommit på den briljanta idén att lagra all info om vad folk stoppade i sin kundvagn i en cookie. Det hade inte varit så illa i sig, men i just detta fallet sparades priset också... Det kan inte ha tagit lång tid innan någon kom på att man kunde missbruka cookien, genom att beställa en massa dyra saker, och sedan redigera cookien så att priset sjönk med ~99%.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback