【问题标题】:Php best and secure way to submit and process a formPHP 提交和处理表单的最佳和安全方式
【发布时间】:2016-12-19 15:55:36
【问题描述】:

这样设置获取请求以使用页面顶部的 php 代码处理表单是一种好习惯吗?

<?php
require_once("include/dbconfig.php");
require_once ("include/userCrud .crud.php");
$userCrud = new userCRUD($pdo);
if(isset($_POST['btn-save']))
{ 
 //Question Data    
 $name= $_POST['name'];
 $subject_id = $_POST['subject_id'];
//other stuffs like Connecting 

$result = $userCrud->create($name, $subject_id, $address, $is_active, $date_created);
}
?>

//并且在页面的中心...

<form ...>
...
<select name="level_id" id="level_id" class="form-control" title="Please select standard or level" required>
                                                    <option value="">Choose a Level</option>
<?php
  $stmt = $pdo->prepare("SELECT * FROM levels");
  $stmt->execute();
  $data=$stmt->fetchAll();
  if($stmt->rowCount() > 0){
  foreach($data as $row) {
?>                                                      
<option value="<?php echo $row['id'] ?>"><?php echo $row['title'] ?></option>
<?php
  }
  }
?>  
                                                </select>
...
</form>

或 通过 JQuery 进行 AJAX 调用并更新结果而不刷新。我只是在为我的网络应用程序使用 php 中的 PDO 环顾四周......我是否应该创建自己的网络服务尝试从头开始进行路由和保护......或者我应该选择像 Slim 这样的框架......好像我是使用表单处理的 AJAX 方式然后我将继续调用我的 json Web 服务......并且我不需要在我的 php 页面中使用数据库连接。移动应用程序也可以使用它来使用我将创建的这些 php 类......

getUsers.php //返回json数组

getSubjects.php // 查询字符串传递的参数用于操作

我只是想知道哪个会更安全和更好......因为我更喜欢在这个项目中使用 PHP。

【问题讨论】:

  • 使用框架。还要问什么更安全是一个非常广泛的问题,因为一种方法本质上并不比另一种更安全。这取决于你如何实现它们。
  • 提交表单的一种安全方式是使用POST 请求,以及某种CSRF 保护,以及XSS 保护......您的数据库查询也应该参数化。 ..这是一个开始...您还应该确保禁用您的root MySQL密码,不要将敏感数据存储在纯文本中等等...这是一个永无止境的故事:)
  • 是的...很好的建议... Hackerman...您能否建议:确保禁用您的 MySQL 根密码

标签: php jquery ajax pdo


【解决方案1】:

在编写小代码时在 html 中包含 php 可能会很好,但当你编写更大的代码时,它会造成混乱和混乱。我建议将数据操作和应用程序逻辑与 html 分开。除了 html 或 ajax 调用中的 php(例如,google MVC,它是创建网页的标准)之外,您还有更多选择。

制作自己的路由/安全/应用程序结构可能是很好的练习,但是由于您是使用 php 开始您的旅程,因此很难正确/安全地完成它,并且当您遇到一个又一个问题时可能会非常消极。我建议您尝试一些框架 - 当您遇到无法处理的问题时,很有可能有人已经知道如何在 stackoverflow 或该框架社区中修复它。

【讨论】:

    猜你喜欢
    • 2012-03-03
    • 1970-01-01
    • 2015-11-30
    • 2021-03-30
    • 1970-01-01
    • 1970-01-01
    • 2018-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多