Если я настрою белый список для каждой переменной GET на веб-странице php, я в безопасности?

0

body корпус корпус корпус корпус корпус корпус корпус корпус корпус корпус корпус корпус корпус корпус корпус корпус корпус

  • 0
    Какие виды атак вы хотите предотвратить? Sql-Inj, XSS, XSRF и т. Д.?
  • 0
    GET, которые отправляются, все, чтобы показать данные из базы данных. И есть только один POST, где поле будет URL. Но почти все переменные будут использоваться для фильтрации полей базы данных и запросов.
Показать ещё 2 комментария
Теги:
security
post
get

2 ответа

0

Вы должны дезинфицировать все ваши динамические данные в качестве примера:

для сантинизации URL вы можете использовать urlencode:

<a href="edit.php?client=<?php echo urlencode($clients['client_name']); ?>"><?php echo $client_name; ?></a>

для javascript вы можете использовать json_encode или для html вы можете использовать htmlspecialchars.

0

Никогда не доверяйте всему запросу, поскольку это может быть хорошим или плохим.

Таким образом, вы должны обезопасить свой дБ от инъекций различными способами. Поскольку вы можете использовать любые mysqli или pdo для своих операций db, я не могу вам советовать. Но я буду рекомендовать вам дезинфицировать, real_escape_string ваш запрос перед обработкой.

Вот несколько примеров

Вот пример как real_escape_string для запроса выбора

$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
            mysql_real_escape_string($user),
            mysql_real_escape_string($password));

Ниже приведен пример запроса Insert после дезинфекции ввода

$contentToSave = filter_var($_POST["content_txt"],FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);
$insert_row = $mysqli->query("INSERT INTO add_delete_record(content) VALUES('".$contentToSave."')");
  • 0
    Почему не prepared statements в PDO?
  • 0
    Я просто даю пользователю пример для очистки входов. У пользователя есть выбор, выбрать mysqli или pdo или даже любой фреймворк

Ещё вопросы

Сообщество Overcoder
Наверх
Меню