Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 45075|Resposta: 7

[ASP.NET] ASP.NET Ataque CSRF Encapsulamento de requerimento Ajax

[Copiar link]
Postado em 2019-9-12 09:42:54 | | | |
O que é CSRF?

CSRF (falsificação de requisição entre sites), também conhecido como ataque de um clique/session riding, abreviação chinesa: CSRF/XSRF. CSRF (Cross Site Request Forgery) é um método de ataque de rede que foi listado como um dos 20 maiores riscos de segurança na Internet em 2007. Outros riscos de segurança, como injeção de scripts SQL e ataques a scripts de domínio entre sites, tornaram-se bem conhecidos nos últimos anos, e muitos sites têm se defendido contra eles. No entanto, CSRF ainda é um conceito estranho para a maioria das pessoas. Até o Gmail mais famoso teve uma vulnerabilidade CSRF no final de 2007, que foi hackeada e causou grandes prejuízos para os usuários do Gmail.

O que a CSRF pode fazer?

Você pode entender ataques CSRF assim: um atacante roubou sua identidade e enviou pedidos maliciosos em seu nome. A CSRF pode fazer coisas como enviar e-mails, enviar mensagens, roubar sua conta ou até comprar bens e transferir moeda virtual em seu nome...... Os problemas causados incluem: vazamento de privacidade pessoal e segurança da propriedade.

ASP.NET Marca antifalsificação MVC AntiForgeryToken

No ASP.NET MVC, tokens de formulário e tokens de cookies são gerados automaticamente por padrão sempre que @Html.AntiForgeryToken() é usado na página de visualização. No entanto, se quisermos alcançar a recuperação manual em segundo plano, precisamos usar a classe System.Web.Helpers.AntiForgery, e amigos interessados em visualizar o código-fonte descobrirão que, de fato, o método de chamada interna de @Html.AntiForgeryToken() é o mesmo da classe AntiForgery.

Ele é usado principalmente para obter o formulário correspondente e o token de cookie por meio de dois métodos estáticos: AntiForgery.GetHtml() ou AntiForgery.GetTokens (string oldCookieToken, string out newCookieToken, out string formToken). No entanto, deve-se notar que, uma vez chamado o método GetHtml, o token de cookie correspondente será gerado automaticamente, e então um pedaço de código HTML com o campo oculto do valor do token de formulário será retornado diretamente, e o valor retornado estará neste formulário:

<nome de entrada="__RequestVerificationToken" type="hidden" valor="8_nUk_3z0svQr9qcvRBi9SWMZ2-SYmuy9kRe9OgRobGULkb2Z4JZxRZFhR0ndeoy9hmDLDru7MFk-W4xrnL5z5T6VbkfXK7fyRk-egQBGm41">

O nome do campo oculto geralmente é fixo como "__RequestVerificationToken", e o valor é um token de segurança criptografado. Esse campo oculto geralmente é colocado no formulário a ser enviado, e a submissão final é verificada em relação ao token de cookie.

Se você usar o método GetTokens, pode obter o formulário criptografado e o token de cookie após passar os parâmetros correspondentes, mas aqui você precisa armazenar os valores correspondentes por conta própria.

Em seguida, vamos apresentar o método de atualização manual do AntiForgeryToken, principalmente via AJAX.

Código do Pacote:



Código de teste:



Descobrimos que, ao enviar uma solicitação ajax, __RequestVerificationToken parâmetros são automaticamente incluídos, como mostrado na figura abaixo:







Anterior:Visualização do Windows CMD Tutorial de Histórico de Comandos
Próximo:Meet Azure DevOps
 Senhorio| Postado em 25-09-2019 18:09:46 |
Postado em 2019-11-10 15:06:37 |
Você não escreveu um plano de tratamento de antecedentes? O processamento em segundo plano dentro do cabeçalho é diferente do processamento em segundo plano sem o cabeçalho
 Senhorio| Postado em 2019-11-21 10:38:40 |
Danqingcheng Postado em 2019-11-10 15:06
Você não escreveu um plano de tratamento de antecedentes? O processamento em segundo plano dentro do cabeçalho é diferente do processamento em segundo plano sem o cabeçalho

Hmm, preciso reescrever o filtro
 Senhorio| Postado em 20-02-2021 19:22:14 |
MVC ajax com AntiForgeryToken para prevenir ataques CSRF
https://www.itsvse.com/thread-4207-1-1.html
Postado em 2021-12-9 18:41:29 |
testtesttesttesttesttesttest
 Senhorio| Postado em 17-04-2022 às 12:59:39 |
 Senhorio| Postado em 26-09-2024 15:57:52 |
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com