ASP.NET Core RazorPages의 위조 방지 토큰
2794 단어 ASP.NETCoreRazorPages.NETCoreC#
양식 태그 도우미의 위조 방지 토큰
Razor Pages에서 FormTagHelper는 form 요소에 위조 방지 토큰을 삽입합니다.
<form method="post">
...
</form>
이제 다음과 같은 숨겨진 입력 태그(위조 방지 토큰)가 자동으로 삽입됩니다.
<input name="__RequestVerificationToken" type="hidden" value="CfDJ8Kws0PPAm1NChsmiTNfRcsX0TTepdsJf6F51WcaEnzEJH9W0IvKaCaoa7btzRNswqHlUXgzrHgA6rfcka5Jqt3u_93IMOSpOLtDRapBkHEPPhl7sGZ1lwyYlgzEcYpAcGKNeK-zL_8IaHnwMa0-viyY" />
이는 교차 사이트 요청 포제리(Cross site request forgeries, CSRF)라는 취약점 대책을 수행하기 위한 것입니다.
시도하려면 브라우저 개발자 도구를 사용하여 토큰을 다시 작성하고 제출해 보겠습니다.

HTTP ERROR 400 오류가 발생했습니다.
AutoValidateAntiforgeryToken 속성
조사해 보면, AutoValidateAntiforgeryToken
라든지 ValidateAntiForgeryToken
라는 속성이 있습니다만, 자동 생성된 소스에는 이러한 속성을 사용하고 있는 개소는 어디에도 없습니다.
기본적으로 AutoValidateAntiforgeryToken
가 적용된 것 같습니다.
위조 방지 토큰을 생성하지 않음
asp-antiforgery="false"
다음과 같이 작성하면 위조 방지 토큰이 생성되지 않습니다.
<form method="post" asp-antiforgery="false">
...
</form>
음, 굳이 그렇게 하는 이유는 보통은 없다고 생각합니다만...
IgnoreAntiforgeryToken 속성
IgnoreAntiforgeryToken
속성을 사용하면, 특정의 페이지 혹은, 특정의 페이지 핸들러 (아무래도 이 이름을 기억할 수 없다...)만, 위조 방지 토큰의 필요성을 없앨 수가 있습니다.
튜토리얼에서 작성한 프로그램의 EditModel
클래스에 IgnoreAntiforgeryToken
속성을 사용해보십시오.
[IgnoreAntiforgeryToken]
public class EditModel : PageModel
{
이번에는 브라우저 개발 도구를 사용하여 토큰을 다시 작성해도 오류가 발생하지 않고 데이터를 업데이트 할 수있었습니다.
이 속성도 전술의 asp-antiforgery
와 같이, 통상의 RazorPages 어플리케이션에서는, 이것을 사용하는 것은 거의 없을 것 같습니다.
Reference
이 문제에 관하여(ASP.NET Core RazorPages의 위조 방지 토큰), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gushwell/items/5718cfcab166de855af7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<form method="post">
...
</form>
<input name="__RequestVerificationToken" type="hidden" value="CfDJ8Kws0PPAm1NChsmiTNfRcsX0TTepdsJf6F51WcaEnzEJH9W0IvKaCaoa7btzRNswqHlUXgzrHgA6rfcka5Jqt3u_93IMOSpOLtDRapBkHEPPhl7sGZ1lwyYlgzEcYpAcGKNeK-zL_8IaHnwMa0-viyY" />
<form method="post" asp-antiforgery="false">
...
</form>
[IgnoreAntiforgeryToken]
public class EditModel : PageModel
{
Reference
이 문제에 관하여(ASP.NET Core RazorPages의 위조 방지 토큰), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/gushwell/items/5718cfcab166de855af7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)