это не приведение к типу. вот приведение к типу $i = (int)"0"; от html injection больше читай, и сформируешь своё мнение, и сможешь даже объяснить, чем кто плох.
Нет, я понимаю, что те функции не приводят к типу=) Насчет того, что такое приведение к типу, я знаю=)) А приведение к типу защищает хоть чуть-чуть от SQL инъекции?
Потому что код чужой внедряет=) Добавлено спустя 4 минуты 5 секунд: Вот например, такой код уязвим? Код (PHP): $result = mysqli_query($db, "SELECT * FROM `page` ORDER BY `position`") or die(mysqli_error($db)); while($row = mysqli_fetch_assoc($result)){ if ($row['show'] != 1){ $i = (int)$row['id']; echo '<li id='.$row['id'].' class="menu__item">[url="'.htmlspecialchars($row['url']).'?lang='.htmlspecialchars($_GET['lang']).'&id='.$row['id'].' class="]'.htmlspecialchars($lang[$i]['menu']).'[/url]</li>'; } }
я спросил почему же называется инъекцией, если оно подменяет? просто оно не подменяет запрос, а вставляет свой. ну и вот приведение к типу может ли спасити? Добавлено спустя 1 минуту 21 секунду: ну одним прекрасным днём кто-то и через id протащит html. Ты и там должен защититься.
а может быть и нет. В данном случае тут нет дырки под инъекцию, но это не значит, что из бд всегда будет приходить инт в айдишнике. =)
А при выборки данных из БД, БД независимо от того, какой тип данных у нее там, отдает все как тип string? Или же БД отдает именно тот тип, который у нее указан?
А еще такой вопрос, я тут не экранировал двойные кавычки. Нужно ли их вообще экранировать, если echo с одинарными кавычками? И как делать лучше инклуд, с двойными или одинарными кавычками? типа так: include "db.php"; или вот так: include 'db.php'; ?
Где-то читал, что если указывать переменную в двойных кавычках, то php будет парсить всю строку на наличие переменных, что займет время, а в одинарных будет кавычках выводит всё как есть. Так ли это? И все же еще непонятно, нужно ли экранировать двойные кавычки? В браузере в отладке это будет видно ведь, не?
ну так в мануале написано. ах да, тыж у нас из тех кто мануалы не читает. где-то читал... а на заборе знаешь что может быть написано? если ты сомневаешься в достоверности информации которую прочитал на заборе - всегда можно уточнить у официального источника. или тебя забанили на офсайте пхп? как относится одинарность-двойность кавычек в процедуре подключения файлов к тому что происходит в браузере? браузер не видит пхп. он видит только результат выполнения скрипта.
Тут я имел ввиду экранирование. Вот сделал я экранирование двойных кавычек, у меня это экранирование видно в отладке в браузере. Ведь так не должно быть.
Да я уже разобрался=) Просто я зря добавлял двойные кавычки, которые автоматически добавлялись, и получался вывод этих кавычек и обратного слеша в отладке в браузере, а одинарные я не экранировал, хотя надо бы=)