• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Jak zrobić link (button) kasujący rekordy

VPS Starter Arubacloud
0 głosów
161 wizyt
pytanie zadane 9 marca 2017 w PHP przez tirith Mądrala (5,940 p.)
zamknięte 16 lutego 2018 przez tirith

WItam.

Mam takie coś...

 

W kolumnie OPCJE są wygenerowane linki np http://abc.pl/kasowanie.php?id=31

Na podstronie kasowanie.php jest kod kasujacy rekord. I to działa. 

Jednak to jak wiadomo jest zrobione bardzo źle. Wystarczy w link wpisać inne ID i już kasujemy inny rekord.

 

Moje pytanie. 

Jak zrobić mechanizm kasowania rekordów aby był bezpieczny? Nie chodzi mi o jakiś konkretny kod a bardziej kierunek w który muszę się skierować. O ile to możliwe chciałbym użyć tylko PHP, JS i HTML.

komentarz zamknięcia: Problem rozwiązany

3 odpowiedzi

+2 głosów
odpowiedź 9 marca 2017 przez jaca121212 Nałogowiec (40,760 p.)
wybrane 9 marca 2017 przez tirith
 
Najlepsza

Do bazy danych dodajesz nową komórkę np code_delate w niej  zapisuje się wygenerowany przez stronę kod usunięcia  i ten kod przesyłasz na e-maila  do właściciela wiadomości. 

http://abc.pl/kasowanie.php?id=31&code_delate="dsw34cd"

Gdy dodajesz nowy rekord to generujesz kod np "dsw34cd" gdazie ten kod zapisujesz go w bazie danych w tym konkretnym ID dla ID następnego dodanego rekordu będzie inny kod. Taki sam kod wysyłasz na adres e-mail do właściciela wpisu.

Jeśli chciałby właściciel skasować ten wpis to musiałby wpisać unikalny kod wygenerowany wcześniej wspominany który został wysłany na e-mail.

 

komentarz 9 marca 2017 przez tirith Mądrala (5,940 p.)

Zabawa w maile podczas kasowania, edytowania rekordu to raczej słaby pomysł.

Ale podsunąłeś mi pomysł. Każdy rekord ma kolumnę CODE_DELETE.Podczas generowania linku losujemy jakiś ciąg znaków i doklejamy np  

http://abc.pl/kasowanie.php?id=31&code_delate="dsw34cd"

Po tym zapisujemy ten ciag w kolumnie CODE_DELETE i podczas kasowania sprawdzamy czy ciągz linku  zgadza sie z tym w bazie. Jak ktoś wpisze inne ID to kod się nie będzie zgadzał i rekord nie będzie skasowany.

Tylko czy to nie jest zbyt przekombinowane.

komentarz 9 marca 2017 przez jaca121212 Nałogowiec (40,760 p.)
nie  a możesz spróbować jeszcze to połączyć z metodą POST
komentarz 9 marca 2017 przez tirith Mądrala (5,940 p.)
A jak zrobić link z metodą POST?
komentarz 9 marca 2017 przez jaca121212 Nałogowiec (40,760 p.)
edycja 9 marca 2017 przez jaca121212
+1 głos
odpowiedź 9 marca 2017 przez Michał Kazula Pasjonat (19,540 p.)
Metodą POST :-)
komentarz 9 marca 2017 przez tirith Mądrala (5,940 p.)
Masz na myśli ukryte inputy które będą miały wartości pobrane ze zmiennej?
0 głosów
odpowiedź 9 marca 2017 przez KariK-02 Mądrala (6,030 p.)

Rozumiem, że chodzi Ci o to, że ktoś w ?id=31 zamiast 31 może podać zapytanie SQL.

Rozwiązaniem może być: *LINK* 

A jeżeli chodzi o wyświetlenie tabeli:

<table class="table table-striped">
					   <thead>
					     <tr>
					       <th></th>
					     </tr>
					   </thead>
					   <tbody>
					     
							<?php 
                                                                $db = new mysqli("", "", "", "");
								foreach($db->query("SELECT...") as $r): ?>

									<tr>
										<td><a href="usun.php?id=<?= $r['id'] ?>">usun</a><td>
									</tr>

								<?php endforeach;	

							?>

					   </tbody>
					 </table>

  

komentarz 9 marca 2017 przez tirith Mądrala (5,940 p.)
Nie, chodzi oto że zamiast 31 może podać np 50 i zostanie skasowany rekord z ID 50
1
komentarz 9 marca 2017 przez KariK-02 Mądrala (6,030 p.)
W takim przpadku to zamiast GET musisz użyć POST, a jeżeli masz wtrącone w twojej aplikacji logowanie to sprawdz czy użytkownik jest zalagowany to może usunąć rekord, a jeżeli nie to wypisać "nie masz dostępu do tego pliku"
komentarz 9 marca 2017 przez KariK-02 Mądrala (6,030 p.)
Polecam książke autorstwa Marcina Lisa pt. "Tworzenie bezpiecznych aplikacji internetowych (z praktycznymi przykładami w PHP) "
komentarz 9 marca 2017 przez tirith Mądrala (5,940 p.)
Dzięki. Rozwiązanie w sumie takie o jaki mi chodzi. Trochę od innej strony ale rozjaśniłeś mi umysł :)

Podobne pytania

0 głosów
1 odpowiedź 133 wizyt
pytanie zadane 6 sierpnia 2020 w PHP przez mat19 Obywatel (1,580 p.)
0 głosów
2 odpowiedzi 392 wizyt
pytanie zadane 30 października 2017 w PHP przez koyoo Początkujący (340 p.)
0 głosów
1 odpowiedź 441 wizyt
pytanie zadane 17 grudnia 2017 w SQL, bazy danych przez seam3 Początkujący (450 p.)

92,454 zapytań

141,262 odpowiedzi

319,089 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...