Pergunta

Durante o curso do nosso login aplicação existem várias consultas correu, todo validar o login. Na avaliação deles, notei que uma das consultas é executado sem a dica NOLOCK.

Não parece haver nenhum perigo particular de sujo ler, pois os dados seriam dificilmente mudança.

Pensando nisso a partir de uma tentativa DOS tipo de ataque por alguém tentar falhou logins e outra vez eu estou sugerindo que a falta de NOLOCK reduz nosso limite para o fracasso.

Eu acredito que é um resultado extremamente improvável de um ataque DoS (acho que o servidor web iria primeiro), mas acrescentando NOLOCK deve torná-lo ir de improvável impossível.

Então, estou sendo excessiva ou trivial?

Foi útil?

Solução

Tendo NOLOCKs ou não é a menor das suas preocupações com uma tentativa de negação de serviço contra o servidor.

Eu não suar.

Se, como você diz, os dados raramente muda, tendo os NOLOCKs provavelmente não machucar.

Outras dicas

Sim, você está sendo excessivamente trival.

Se você está exposto a ataques DoS, NOLOCK na chamada autorização SQL é a menor das suas preocupações. Implementar algumas detecção DOS, rastreamento de falha + acelerador, até mesmo algumas pausas planejadas que não iria afetar o usuário, mas seria retardar um ataque ...

O NOLOCK poderia melhorar seu desempenho se você chamar essa consulta com frequência, especialmente em operações mais amplas.

Considere a natureza da sujo ler - se a janela de tempo onde isso pode ocorrer é verdadeiramente crítica? por exemplo. onde você adicionar ou remover alguém de um papel autorizado.

No cenário add uma leitura suja seria um fracasso nessa tentativa. (Acesso negado)

No cenário remover uma leitura suja iria trabalhar em que a tentativa. (Acesso concedido)

Se a mudança de dados através de operação manual, por exemplo, interação humana - a sua margem de "latência" é tipicamente muito maior / indeterminado de seus bancos de dados

Além disso, um caso muito raro, mas ainda: Exatamente no momento em que alguém desativa o usuário para impedi-los de fazer o login, NOLOCK deixa-los em Poderia ser um usuário desonesto / hackers / empregado que precisa ser bloqueado imediatamente <.? / p>

Você teria que se preocupar com este cenário específico para renunciar a vantagem de NOLOCK desempenho.

Você iria proteger sua mesa muito melhor, olhando para as permissões para isso. Uma tabela como esta não deve permitir qualquer acesso direto, todo o acesso deve ser de procedimentos armazenados e as permissões definidas sobre eles em seu lugar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top