使用 csp header submit/redirect html 形式安全地 validation.php 的最佳方式?
Best way to submit/redirect a html form to validation.php securly with a csp header?
我用 php csp header 制作了一个 HTML 表格。我想使用 php 进行安全结帐。我的 csp header 看起来像这样: Content-Security-Policy:default-src 'none'; base-uri 'self'; form-action 'none' https:example.com;
。我的表单还有一个 php 生成的 CSRF 令牌。
现在我的问题是:我有一个包含表单和令牌生成器的 index.php 文件,一个 validation.php 文件和带有片尾画面的 thankyou.php 文件。我希望 validation.php 文件在重定向到 thankyou.php 文件时不显示在 url 中。
index.php
<!---- HERE IS MY PHP CODE ---->
header('X-XSS-Protection: 1; mode=block');
header('X-Frame-Options: deny');
header('X-Content-Type-Options: nosniff');
header('Referrer-Policy: same-origin');
/* CSRF Protection */
$_SESSION['token'] = bin2hex(random_bytes(24));
<!---- ******************* ---->
<form id="delivery-form" action="php/validation.php"> <!---- HERE I'M NOT SURE HOW TO HIDE ---->
<div id="delivery-address" class="site">
<h2>Delivery Address/h2>
<!---Radio Buttons---->
<label for="men" class="radio men">
<input type="radio" name="rdo" id="men" class="hidden"/>
<span class="label"></span>Herr
</label>
<label for="woman" class="radio">
<input type="radio" name="rdo" id="woman" class="hidden"/>
<span class="label"></span>Frau
</label><br><br>
<div class="inputBox">
<input type="text" placeholder=" " name="firstname" autocomplete="on" required value="">
<label>Firstname</label>
</div><br>
<div class="inputBox">
<input type="text" placeholder=" " name="lastname" class="big_break" autocomplete="on" required value="">
<label>Lastname</label>
</div><br>
<div class="inputBox">
<input type="text" placeholder=" " name="street" id="input_middle_size" autocomplete="on" required value="">
<label>Street</label>
</div>
<div class="inputBox">
<input type="text" placeholder=" " name="number" id="input_small_size" autocomplete="on" required value="">
<label>Number</label>
</div><br>
<div class="inputBox">
<input type="text" placeholder=" " name="plz" id="input_small_size" autocomplete="on" required value="">
<label>Place</label>
</div>
<div class="inputBox">
<input type="text" placeholder=" " name="town" class="big_break" id="input_middle_size" autocomplete="on" required value="">
<label>town</label>
</div><br>
<div class="inputBox">
<input type="email" placeholder=" " name="email" autocomplete="on" required value="">
<label>E-Mail</label>
</div><br>
<!---Vorwahl und Telefonnummer Feld---->
<div class="inputBox">
<input type="text" placeholder=" " name="vorwahl" id="input_small_size" autocomplete="on" required value="">
<label>area-code</label>
</div>
<div class="inputBox">
<input type="tel" placeholder=" " name="phone_number" class="big_break" id="input_middle_size" autocomplete="on" required value="">
<label>phone-number</label>
</div><br>
</div>
</form>
因为黑客可以攻击我的 validation.php 文件。我在 Post/Redirect/Get 上阅读了一篇文章。
但我不知道如何重定向 securly.
我希望有人能告诉我如何从我的表单重定向到 validation.php 和 thankyou.php 文件(主要是黑客安全)。
无论如何,您必须将表单发送到服务器的某处,并且您无法通过重定向隐藏此 PHP-module(这些很容易在 HTTP headers 中进行跟踪,因此可以防止 kiddie-hackers仅)。
您已经使用 CSRF 令牌和 CSP 的 form-action
来确保安全。不错。
为了使黑客攻击复杂化,您还可以使用 CAPTCHA 服务(如 reCAPTHA、hCAPTCHA),但这些 third-party 脚本也需要在 CSP 中允许(因为您使用它)。
但是隐藏表单处理程序是不可能的(validation.php)。
只能创建没有漏洞的 validation.php 处理程序,让黑客没有机会。
我用 php csp header 制作了一个 HTML 表格。我想使用 php 进行安全结帐。我的 csp header 看起来像这样: Content-Security-Policy:default-src 'none'; base-uri 'self'; form-action 'none' https:example.com;
。我的表单还有一个 php 生成的 CSRF 令牌。
现在我的问题是:我有一个包含表单和令牌生成器的 index.php 文件,一个 validation.php 文件和带有片尾画面的 thankyou.php 文件。我希望 validation.php 文件在重定向到 thankyou.php 文件时不显示在 url 中。
index.php
<!---- HERE IS MY PHP CODE ---->
header('X-XSS-Protection: 1; mode=block');
header('X-Frame-Options: deny');
header('X-Content-Type-Options: nosniff');
header('Referrer-Policy: same-origin');
/* CSRF Protection */
$_SESSION['token'] = bin2hex(random_bytes(24));
<!---- ******************* ---->
<form id="delivery-form" action="php/validation.php"> <!---- HERE I'M NOT SURE HOW TO HIDE ---->
<div id="delivery-address" class="site">
<h2>Delivery Address/h2>
<!---Radio Buttons---->
<label for="men" class="radio men">
<input type="radio" name="rdo" id="men" class="hidden"/>
<span class="label"></span>Herr
</label>
<label for="woman" class="radio">
<input type="radio" name="rdo" id="woman" class="hidden"/>
<span class="label"></span>Frau
</label><br><br>
<div class="inputBox">
<input type="text" placeholder=" " name="firstname" autocomplete="on" required value="">
<label>Firstname</label>
</div><br>
<div class="inputBox">
<input type="text" placeholder=" " name="lastname" class="big_break" autocomplete="on" required value="">
<label>Lastname</label>
</div><br>
<div class="inputBox">
<input type="text" placeholder=" " name="street" id="input_middle_size" autocomplete="on" required value="">
<label>Street</label>
</div>
<div class="inputBox">
<input type="text" placeholder=" " name="number" id="input_small_size" autocomplete="on" required value="">
<label>Number</label>
</div><br>
<div class="inputBox">
<input type="text" placeholder=" " name="plz" id="input_small_size" autocomplete="on" required value="">
<label>Place</label>
</div>
<div class="inputBox">
<input type="text" placeholder=" " name="town" class="big_break" id="input_middle_size" autocomplete="on" required value="">
<label>town</label>
</div><br>
<div class="inputBox">
<input type="email" placeholder=" " name="email" autocomplete="on" required value="">
<label>E-Mail</label>
</div><br>
<!---Vorwahl und Telefonnummer Feld---->
<div class="inputBox">
<input type="text" placeholder=" " name="vorwahl" id="input_small_size" autocomplete="on" required value="">
<label>area-code</label>
</div>
<div class="inputBox">
<input type="tel" placeholder=" " name="phone_number" class="big_break" id="input_middle_size" autocomplete="on" required value="">
<label>phone-number</label>
</div><br>
</div>
</form>
因为黑客可以攻击我的 validation.php 文件。我在 Post/Redirect/Get 上阅读了一篇文章。 但我不知道如何重定向 securly.
我希望有人能告诉我如何从我的表单重定向到 validation.php 和 thankyou.php 文件(主要是黑客安全)。
无论如何,您必须将表单发送到服务器的某处,并且您无法通过重定向隐藏此 PHP-module(这些很容易在 HTTP headers 中进行跟踪,因此可以防止 kiddie-hackers仅)。
您已经使用 CSRF 令牌和 CSP 的 form-action
来确保安全。不错。
为了使黑客攻击复杂化,您还可以使用 CAPTCHA 服务(如 reCAPTHA、hCAPTCHA),但这些 third-party 脚本也需要在 CSP 中允许(因为您使用它)。
但是隐藏表单处理程序是不可能的(validation.php)。
只能创建没有漏洞的 validation.php 处理程序,让黑客没有机会。