Php 我的代码有多安全?

Php 我的代码有多安全?,php,Php,我是PHP新手,希望了解我的代码有多安全(如果它是安全的?),以及如何改进它,我的代码可以在下面找到: <?php include('header.php'); if (!$is_online) { redirect('index.php'); exit; } ?> <div class="content"> <h2 class="title">Level</h2> <? $today_clicks = $db->

我是PHP新手,希望了解我的代码有多安全(如果它是安全的?),以及如何改进它,我的代码可以在下面找到:

<?php
include('header.php');
if (!$is_online) {
    redirect('index.php');
    exit;
}
?>

<div class="content">
<h2 class="title">Level</h2>

<?

$today_clicks = $db->QueryFetchArray("SELECT SUM(`today_clicks`) AS `clicks` FROM `user_clicks` WHERE `uid`='".$data['id']."'");

$pack['coins'] = 60;

$pack['level'] = 1;

if($data['level_reward_claimed']*100 <= ($today_clicks['clicks'])) {
    $db->Query("UPDATE `users` SET  `coins`=`coins`+'".$pack['coins']."' WHERE `id`='".$data['id']."'");
    $db->Query("UPDATE `users` SET  `level`=`level`+'".$pack['level']."' WHERE `id`='".$data['id']."'");
    $db->Query("UPDATE `users` SET  `level_reward_claimed`=`level_reward_claimed`+'".$pack['level']."' WHERE `id`='".$data['id']."'");
?>
    <div class="msg"><div class="success">100 points added and level increased!</div>
<?
}
else {?>
    <div class="msg"><div class="error">You need more clicks!</div></div>
<?}?>
</div>

数量

我假设数组
$data
填充在header.php中。如果是用户提供的参数,那么这些查询对于sql注入来说是非常不安全的

从技术上讲,如果
$data
是一个数组,您可以手动使用元素
$data['id']
填充自己,那么从sql的角度来看,它并不是不安全的——只要没有人将
$data['id']
设置为用户提供的数据

您应该对where参数中分配或使用的所有数据使用准备好的语句


我建议您也不要试图手动引用和转义数据,从而使您提供的数据“sql安全”。使用事先准备好的陈述。时期我不知道你使用的是什么DB抽象库,所以我不能再具体说明了。

Hmm,我想通过点击次数不够而获得奖励来欺骗系统。我基本上是想阻止我的用户在没有所需点击次数的情况下获得奖励。我不喜欢成为那个家伙,但我必须提醒你们,这不是讨论论坛,而是问答板。某些代码“有多安全”,这无疑是一个讨论话题。
$data
是如何填充的?这个问题似乎是离题的,因为它是关于代码审查的。也许在
$db Query
-方法中有一些神奇的sql注入预防,但我怀疑……@stUrb:)看起来像是好的旧手动查询构造。:)因此我的“我怀疑”:@stUrb我指的是坏的旧查询构造:)