gpt4 book ai didi

php - 如何在 php 中清理从 url 到 mysql 的简单 _GET 输入

转载 作者:行者123 更新时间:2023-11-29 09:09:13 25 4
gpt4 key购买 nike

我有一个简单的 php 脚本,希望人们可以简单地访问类似 http://mydomain.com/get.php?id=TEXTMASH-1FD0066D-F75A-5D0C-6784-2FA0D055B0D7并从我的 mysql 数据库中提取这个文本 block 。我对 php 很陌生。知道所有预期的 ID 都应采用 TEXTMASH-1FD0066D-F75A-5D0C-6784-2FA0D055B0D7 格式,我如何“清理”_GET,使其不易受到任何攻击?我看过一些指南,但我只是不明白。有人介意给我看看吗?我真的很感激。

<?php 

include_once("../../extern/dbinclude.php");

$id= $_GET['id'];

$result = mysql_query("SELECT text FROM mytable WHERE id='$id'")
or die(mysql_error());

$row = mysql_fetch_array($result);

if($row)
{
echo nl2br($row['text']);
} else {
?>
<h2>Invalid URL</h2>
<?php
}

最佳答案

您可以使用mysql_real_escape_string或可能的正则表达式来检查输入。适合您情况的一种可能的正则表达式:

$pattern = '/^TEXTMASH-[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/';
if(!preg_match($pattern, $id))
{
echo "No dice >:(";
exit;
}

关于php - 如何在 php 中清理从 url 到 mysql 的简单 _GET 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6148147/

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