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.