Wpis z mikrobloga

Mirki!
Napisałem skrypt w #php którego zadaniem jest wykonywać zapytania #mysql przekazane w post.
O ile zapytanie brzmi show tables albo show databases wszystko jest ok, ale jeżeli spróbuję czegoś bardziej na samych danych typu select * from x to dostaję Forbidden 403. Próbowałem otwierać połączenie obiektowo i strukturalnie, skutek jest ten sam.
Poniżej najważniejszy kawałek kodu:

$query = $_POST['query'];
if($query == ''){
echo("NO_QUERY");
exit;
}
$mysql = Array(
"host" => 'xxxxxxx',
"user" => 'xxxxxxx',
"password" => 'xxxxxx',
"name" => 'xxxxxxxxxx'
);
@ $db = new mysqli($mysql['host'], $mysql['user'], $mysql['password'], $mysql['name']);
if(mysqli_connect_errno()){
echo('CONNECTION=>ERROR');
}else{
echo('CONNECTION=>OK');
}
$answer = $db->query($query);
echo ("
Wierszy: ".$answer->num_rows."
");
for($i=0; $i < $answer->num_rows; $i++){
$row = $answer->fetch_assoc();
foreach($row as $key => $value){
echo($key." => ".$value."
");
}
}
$db->close();

#programowanie #apache2 #pytanie
  • 19
@komplik: @progreso: @ppawel: @DiKey: Ale #!$%@?...Czy ten kod jest tak zły że nie ma prawa działać? Nie jest to topka optymalizacji ale napisałem to "na kolanie" żeby sprawdzić czy to co mam w głowie będzie działać, chodzi o funkcjonalność. Będę całość pisał od nowa ale nie wiem czy ktoś przed napisaniem jaki to kod nie jest tragiczny, spojrzał na faktyczny problem który na początku opisałem.
@SiarkoWodor: Kod (rozpatrywany jako kod) sam sobie nie jest zły. Będzie działać. Nawet bardziej niż się spodziewasz: publikując go gdziekolwiek udostępniasz dziurę wielką jak... wielka dziura. Poczytaj o SQLi, a potem spójrz jeszcze raz na ten kod.
@SiarkoWodor: Faktycznym problemem tego kodu jest on cały. Nawet na kolanie tak nie piszę :-/ Nawet już nie chodzi o przesyłanie postem...

Używasz mysqli zrób sobie proste or die(mysqli_error()) i zocacz co nie halo.
@SiarkoWodor: nie rób tak, serio. A tym bardziej jak chcesz to na localhost to po grzyba, jak masz konsole mysql? Przedstaw koncept i to co chcesz osiągnąć to ktoś Ci pomoże.
Ps jak zmapujesz port 80 na swój komp, żeby mieć dostęp z zewnątrz to się możesz zdziwić, że jednak ktoś wejdzie...