如何防止用户更改我们的表单操作属性?

时间:2019-04-13 03:42:43

标签: php html html5

我最近创建了Login系统,但是我的代码存在一些问题。当在Chrome中检查元素并将表单操作更改为另一个PHP进程页面时,它起作用了!而且我不希望用户这样做。 每个人都可以给我一种无需更改即可验证表单的技术吗? 对不起我的英语! 希望你理解我的问题!

<form class="container mt-5 bg-light p-5 rounded" action="process/login.process.php" method="post">

2 个答案:

答案 0 :(得分:0)

欢迎使用StackOverflow,很遗憾,这不可能锁定客户端活动,并且这不会影响任何可能因该操作而损害您网站的内容。

答案 1 :(得分:0)

如果您正在使用登录系统,也许应该为用户设置一个会话变量。

例如(这只是示例代码,忽略了安全性问题和设计模式):

form.html

<form action="login.php" method="post">
    <input type="text" name="username">
    <input type="submit">
</form>

login.php

<?php
session_start();
if ($_POST['username'] != 'root') {
    header('Location: /form.html');
    exit(1);
}
$_SESSION['logged_in'] = true;
header('Location: /logged.php');
?>

logged.php

<?php
session_start();
if ($_SESSION['logged_in']) {
    header('Location: /form.html');
    exit(1);
}
// write your code from here

?>

因此,在要保持私有状态的每个页面中(仅登录用户可以访问),必须检查该会话var是否有效。否则,您应该将用户重定向到登录页面。

无论是否执行此操作,您都不能阻止用户在客户端进行任何处理。这就是为什么我们必须检查服务器端的所有用户输入:安全! ;-)