Sanitização e validação dos dados, tanto no front-end quanto no back-end é a forma mais comum de se proteger desses ataques, pois você ignora qualquer dado não esperado no momento da requisição.
Respondendo a "E quais seriam as formas de se proteger?" dentro da publicação SQL INJECTION
1