gpt4 book ai didi

php - 如何使输入值成为 mysql 行?

转载 作者:行者123 更新时间:2023-11-29 07:06:26 26 4
gpt4 key购买 nike

super 后期编辑(重要):请不要将此问题用作任何类型的教程。这里显示的示例对于任何攻击来说都是一场绝对的噩梦。我无法删除该问题,但请帮自己一个忙并关闭此选项卡。如果您将此处提供的 PHP 代码的某些部分放入此处,那么您的网站就会对最简单的 SQL 注入(inject)开放 - 如果您设法使其运行,因为即使在提出此问题时,此处显示的方法也已被弃用。如果您将此代码放入任何页面,则接受的答案会对您的网站产生所有可能的危险。谢谢。

我想要的只是一个具有 MySQL 行值的输入:

 <?php
ob_start();
session_start();
require_once 'dbconnect.php';
$results = mysqli_query($con,"Select * FROM users WHERE userName ='$username'");
while ($name = mysqli_fetch_array($results))
{
extract($row);
}

// if session is not set this will redirect to login page
if( !isset($_SESSION['user']) ) {
header("Location: index.php");
exit;
}
// select loggedin users detail
$res=mysql_query("SELECT * FROM users WHERE userId=".$_SESSION['user']);
$userRow=mysql_fetch_array($res);
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
You just have logged in, so now you can go to your personal folder:<br>
<?php
if (isset($_POST['bt']))
{
header("Location: http://yougle.rf.gd/" . $_POST['folder']);
}
?>
<html>
<form id="form1" name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="text" name="folder" id="folder" value=<?php echo $name[userName] ?>>
<input type="submit" name="bt" id="bt" value="Go To" />
</form>
</body>
</html>
<?php ob_end_flush(); ?>

正如你所看到的,我有表单...但是该字段是空的...我已经检查了所有变量(在数据库中是否相同),一切看起来都很好。

最佳答案

我几乎不知道从哪里开始。

  1. 您对 SQL 注入(inject)持开放态度。您不应该使用 mysql_* 函数。它们已被弃用并从当前的 PHP 版本中删除。而是使用 PDOmysqli带有准备好的语句和绑定(bind)参数。
  2. 您(我假设)不必要地缓冲输出,以此来回避您不必要地发送 header() 的事实。内容被回显后。
  3. 你的 HTML 太糟糕了。两个<html>标签,无 <body>标签等。
  4. 这里有语法错误:echo $name[userName]因为userName不是一个定义的常数。试试enabling error reporting你应该看到这个。
  5. 最后,为了锦上添花,您通过回显 $_SERVER['PHP_SELF'] 获得了 XSS 漏洞。直接到浏览器。 http://www.html-form-guide.com/php-form/php-form-action-self.html解释如何使用htmlentities逃避这些数据可以缓解这个问题。

就我个人而言,我更喜欢谨慎行事,将所有未硬编码到脚本中的变量绑定(bind)到查询,并在将其回显到浏览器之前正确转义所有内容,这样我就不必考虑其他内容可能会一路操纵这些值。

关于php - 如何使输入值成为 mysql 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41454120/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com