Follow along with the video below to see how to install our site as a web app on your home screen.
Бележка: This feature may not be available in some browsers.
if (isset($_GET['id'])) {
$id = $_GET['id'];
if (is_numeric($id) == FALSE ) {
header('Location: somepage.php');
}
}
Достатъчно е , ако правиш проверка дали съществува такова ID.Zion каза:Dodo1987 - не питах каква да е проверката а дали това което правя аз е достатъчно като защита при изкарването и вкарването на числа
Ако съдя по това което казвате че го превръща в 0 значи би трябвало да е достатъчно?
(int) е достатъчноDodo1987 каза:Може да бъде атакуван сайта, да се вкара шел, да се изтрие базата данни и да се изпълнят всякакви заявки.
Затова е добре всички входни данни да се обработват преди ползването им, за да се предотврарят такива моменти.
Проверката която е подходяща е:
Код:if (isset($_GET['id'])) { $id = $_GET['id']; if (is_numeric($id) == FALSE ) { header('Location: somepage.php'); } }
При този код, ако е зададено ГЕТ ид ще се провери дали е число и ако НЕ е число - ще се извика дадена страница за грешка и кода няма да продължи нататък.
Ако го правиш чрез кастване на променливата (int) - текстова информация ще бъде превърната в 0 и след това ще ти даде даде грешка при заявката когато извикаш ред от базата данни - ИД с номер 0, който няма да съществува примерно.
sorRy каза:еми не виж сега ти и по 1000 начина да го направиш да си сигурен че в цифров формат пак не може да си сигурен че той няма да напише ид от сорта на 100000000000000000000000000 за тва ти говори че трябва да проверяваш дали има статия с това ид иначе с (int) може да си на 100% сигурен че ще получиш число