Serviços da Web RESTful - Segurança
Como os serviços da Web RESTful funcionam com caminhos de URL HTTP, é muito importante proteger um serviço da Web RESTful da mesma maneira que um site é protegido.
A seguir estão as melhores práticas a serem seguidas ao projetar um serviço da Web RESTful -
Validation- Valide todas as entradas no servidor. Proteja seu servidor contra ataques de injeção de SQL ou NoSQL.
Session Based Authentication - Use a autenticação baseada em sessão para autenticar um usuário sempre que uma solicitação for feita a um método de serviço da web.
No Sensitive Data in the URL - Nunca use nome de usuário, senha ou token de sessão em uma URL, esses valores devem ser passados para o serviço da Web através do método POST.
Restriction on Method Execution- Permitir o uso restrito de métodos como métodos GET, POST e DELETE. O método GET não deve ser capaz de excluir dados.
Validate Malformed XML/JSON - Verifique a entrada bem formada passada para um método de serviço da web.
Throw generic Error Messages - Um método de serviço da web deve usar mensagens de erro HTTP como 403 para mostrar o acesso proibido, etc.
Código HTTP
Sr. Não. | Código HTTP e descrição |
---|---|
1 |
200 OK - mostra sucesso. |
2 |
201 CREATED- quando um recurso é criado com sucesso usando a solicitação POST ou PUT. Retorna o link para o recurso recém-criado usando o cabeçalho do local. |
3 |
204 NO CONTENT- quando o corpo de resposta está vazio. Por exemplo, uma solicitação DELETE. |
4 |
304 NOT MODIFIED- usado para reduzir o uso da largura de banda da rede no caso de solicitações GET condicionais. O corpo da resposta deve estar vazio. Os cabeçalhos devem ter data, localização, etc. |
5 |
400 BAD REQUEST- afirma que uma entrada inválida foi fornecida. Por exemplo, erro de validação, dados ausentes. |
6 |
401 UNAUTHORIZED - afirma que o usuário está usando token de autenticação inválido ou incorreto. |
7 |
403 FORBIDDEN- informa que o usuário não está tendo acesso ao método que está sendo usado. Por exemplo, Excluir acesso sem direitos de administrador. |
8 |
404 NOT FOUND - afirma que o método não está disponível. |
9 |
409 CONFLICT- indica a situação de conflito durante a execução do método. Por exemplo, adicionar uma entrada duplicada. |
10 |
500 INTERNAL SERVER ERROR - afirma que o servidor lançou alguma exceção ao executar o método. |