Php 我的代码有多安全?
我是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
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我指的是坏的旧查询构造:)