Следует ли проверять серверную сторону, если вы проверяете клиентскую сторону?

Я также должен добавить, что я задаю вопрос с расширением mysql . Я знаю, что следует использовать mysqli или PDO . Если я использую проверку jQuery для проверки на стороне клиента (например, по электронной почте), должен ли я также делать это на стороне сервера (убедитесь, что он не пуст и является действительным адресом электронной почты)?

Мне просто интересно, открываю ли я себя для уязвимостей межсайтового скриптинга или SQL-инъекций или чего-то еще, просто не проверяя серверную сторону, или я буду в порядке, пока я принимаю меры безопасности, когда данные формы .

ДА ДА всегда ДА. Никогда не доверяйте всему, что приходит из браузера.

В самом доброкачественном случае, что, если у них отключен Javascript?

Для более изощренного случая, что, если бы они вручную размещали данные с чем-то вроде curl ?

Как уже указывалось другими: проверка на стороне сервера является обязательной и не может быть исключена ни при каких обстоятельствах, проверка на стороне клиента не намного больше, чем предотвращение ввода неправильных данных пользователем. Что касается безопасности, проверка на стороне клиента абсолютно ничего не значит, потому что она всегда может быть отключена или обойдена иным образом злоумышленником.

Если вы хотите проверить, как защитить себя от таких атак, как SQL-инъекция и XSS, я бы рекомендовал вам прочитать эти сайты:

  • Шифрованный прокси-сервер XSS (OWASP)
  • Шифрование предупреждений SQL-инъекций (OWASP)

И более общие проблемы безопасности PHP:

  • PHP Cheat Sheet (OWASP)