Bezpečnost dotazů na DIBI při čtení, aneb FirePHP dobrý sluha, ale zlý pán

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Saurian
Člen | 28
+
0
-

Nevím jestli se vyjádřív dostatečně srozumitelně, budu se snažit .)
Zajímalo by mě, jestli je bezpečné přistupovat k databázi během „signálu“ či „action/render“ tj.

např.

public function renderDetail($id, $arg1)
{
	$info = $this->myModel->getInfoDetail($id, $arg1);	// přečte info z databáze (z modelu)
	$this->template->info = $info;				// data zobrazím v šabloně
}

nebo volání signálu z Ajaxu …

	public function handleGetDB($id, $arg1)
	{
		$this->payload->data = $this->myModel->getDetailData($id, $arg1);
		$this->terminate();
	}

jednoduchý příklad v modelu …

	public function getDetailInfo($id, $arg1)
	{
		try {
			// čistě jen pro příklad, zkrátka jakékoliv volání dibi ...
			$result = dibi::query('SELECT id FROM log_bids WHERE %and',array(
								array('trade = %i', $id),
								array('userid = %i', $userID->id),));
		} catch (DibiException $e) {
			return self::FAIL;
		}

		return $result;
	}

Jde o to, že pokud mám (nebo kdokoliv jiný) nainstalován „Fire PHP“, vidí pěkně všechny dotazy na databázi ve výsledku. Pokud provedu nějaký zápis u kterého následně obnovím stránky (redirect), je vše v pořádku, ale jak něco přečtu z DB po vykreslení stránek (např. Ajaxové dotazy na DB), je „zle“, uživatel díky Fire-PHP vše vidí a nevím mám si s tím lámat hlavu, nebo ignorovat ?

Můžu vše řešit přes cache, ale celé se to komplikuje (něco by šlo řešit jen těžko)

Moc díky (mám zkrátka obavu o bezpečnost :)

Majkl578
Moderator | 1364
+
0
-

A proč si je na produkčním nevypneš?

Saurian
Člen | 28
+
0
-

Ehm, ono jde nějak vypnout zobrazení dibi dotazů ? Můžeš símtě poodhalit to „tajemství“ ? :)

Majkl578
Moderator | 1364
+
0
-

Stačí nepředávat profiler = true, resp. předat profiler = false.

Saurian
Člen | 28
+
0
-

Skvělé řešení. A já se s tím trápím takovou dobu .

moc díky …