【问题标题】:HTML form without CSRF protection alert (Acunetix)没有 CSRF 保护警报的 HTML 表单 (Acunetix)
【发布时间】:2017-02-20 07:22:29
【问题描述】:

我在我的表单中使用 @Html.AntiForgeryToken() 并且在操作中我使用 [ValidateAntiForgeryToken] 属性但是当通过 Acunetix 测试我的网站时得到这个错误:

没有 CSRF 保护的 HTML 表单

html:

<form action="/Car/SearchCar?uniq=-107215139" method="POST" name="form" id="FormCarSearch">
    <input name="__RequestVerificationToken" type="hidden" value="NpoBFo4bSCwbm0yZ6dIrpOazM00uX-rKNbru9sfVPGV9cJ8qaDsYaAqsRDDKuy0W0R7gCZSVQu_QN2qD8uTeThan7Ad78GNteLdQN2TKPYJUVD3MrxeeT1YG_i4IYaa6zzENb9CKR1p3zcW9HmDNxA2">
    <div class="">
        <h4 class="title">
            جستجوی خودرو :
        </h4>
        <div class="row">
            <div class="form-group col-sm-6 col-md-2 col-md-push-10 col-sm-push-6 ">
                <div class="datepicker-wrap">
                    <label>از تاریخ </label>
                    <input name="CarFormDate" autocomplete="off" id="CarFromDate" type="text" class="input-text full-width hasDatepicker" placeholder="از تاریخ ">
                </div>
            </div>
            <div class="form-group col-sm-6 col-md-2 col-md-push-6 DestinationT">
                <div class="datepicker-wrap">
                    <label>تا تاریخ </label>
                    <input name="CarToDate" autocomplete="off" id="CarToDate" type="text" class="input-text full-width hasDatepicker" placeholder="تا تاریخ ">
                </div>
            </div>
            <div class="form-group col-sm-6 col-md-2 col-md-push-2 col-sm-push-6">
                <label> شهر</label>
                <div class="selector">
                    <select class="full-width" name="CarCity" id="CarCity">
                        <option value="1">کیش</option>
                    </select><span class="custom-select full-width">کیش</span>
                </div>
            </div>
            <div class="form-group col-sm-6 col-md-2 col-md-pull-2 col-sm-pull-6">
                <label>نوع خودرو</label>
                <div class="selector">
                    <select class="full-width" name="CarStyle" id="CarType">
                        <option value="1">سواری</option>
                        <option value="2">شاسی بلند</option>
                        <option value="21">کروک اسپورت</option>
                    </select><span class="custom-select full-width">سواری</span>
                </div>
            </div>
            <div class="form-group col-sm-6 col-md-2 col-md-pull-6 col-sm-push-6">
                <label class="transparent">جستجوی خودرو</label>
                <button class="full-width soap-icon-search" type="button" id="SearchCar">جستجوی خودرو</button>
            </div>
        </div>
    </div>
</form>

如何修复此漏洞:

检查此表单是否需要 CSRF 必要时保护并实施 CSRF 对策。

这种情况有问题吗?

我该如何解决这个问题?

【问题讨论】:

    标签: asp.net-mvc security


    【解决方案1】:

    CSRF 检测本质上很难自动检测,并且通常需要某种形式的人工验证来检查警报是否为误报。

    Acunetix 下面有一篇关于 CSRF 令牌的非常详细的文章,我建议您阅读 - https://www.acunetix.com/websitesecurity/csrf-attacks/

    如果您需要更多详细信息,请告诉我。

    【讨论】:

      猜你喜欢
      • 2011-10-15
      • 2018-11-03
      • 1970-01-01
      • 2019-05-16
      • 1970-01-01
      • 2015-04-30
      • 2012-09-28
      • 2018-11-17
      • 2011-02-16
      相关资源
      最近更新 更多