Inkludera extern php-fil

Frågor kring MODdar (modifikationer) för phpBB 2.0.x.

Moderatorer: Moderatorgrupp, Supportgrupp

Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6554
Blev medlem: 2004-06-09 08:32
Svar: 1
Ort: Hannover/Tyskland
Kontakt:

Inkludera extern php-fil

Inlägg av Holger »

Hej!

Jag vill inkludera en extern PHP-fil på min index-sida.
Jag har alltså en php-fil på en annan server som innehåller echos som matar ut information.
Hur får jag in det på min index-sida?

/Holger
Bilagor
random_more_pics.zip
(1.21 KiB) Nerladdad 339 gånger
Holger Gremminger
Ingen support via PM!
Användarens profilbild
tumba25
Hedersmedlem
Hedersmedlem
Inlägg: 2097
Blev medlem: 2007-04-18 09:38
Svar: 0
Ort: Kokkola, Finland.

Re: Inkludera extern php-fil

Inlägg av tumba25 »

Kod: Markera allt

include('http://den-andra-domänen.tld/filen.php');
Och sen ser du till att allow_url_include är på.

Men det är ett säkerhetshål i klass med Titanic.
Bild
Developer @ phpBB MOD Team

Behöver du en modifikation skriven/installerad för ditt phpBB-forum? Eller kanske annan specialanpassad kod och/eller en server-administratör? https://tumba25.net/
Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6554
Blev medlem: 2004-06-09 08:32
Svar: 1
Ort: Hannover/Tyskland
Kontakt:

Re: Inkludera extern php-fil

Inlägg av Holger »

Jag vill ju att echot visas på ett bestämt ställe i TPL-filen, hur gör man det?
Och vad menar du med att det är ett säkerhetshål?
Holger Gremminger
Ingen support via PM!
Användarens profilbild
tumba25
Hedersmedlem
Hedersmedlem
Inlägg: 2097
Blev medlem: 2007-04-18 09:38
Svar: 0
Ort: Kokkola, Finland.

Re: Inkludera extern php-fil

Inlägg av tumba25 »

Först ändrar du i random_more_pics.php
Före

Kod: Markera allt

while($row = $site_db->fetch_array($result)){
Sätter du

Kod: Markera allt

$holger_var = '';
Sen ändrar du

Kod: Markera allt

  echo "&nbsp;&nbsp;<a href=\"".ROOT_PATH."details.php?image_id=$image_id\"><img src=\"".$thumb_src."\" border=\"1\" alt=\"$image_name\"></a>&nbsp;&nbsp;";
  echo "<b>$image_name</b>\n";
  echo "Comments: $image_comments<hr>\n";
till

Kod: Markera allt

  $holger_var .= "&nbsp;&nbsp;<a href=\"".ROOT_PATH."details.php?image_id=$image_id\"><img src=\"".$thumb_src."\" border=\"1\" alt=\"$image_name\"></a>&nbsp;&nbsp;";
  $holger_var .= "<b>$image_name</b>\n";
  $holger_var .= "Comments: $image_comments<hr>\n";
Du får någonstans i index.php sätta include('random_more_pics.php');
ex efter

Kod: Markera allt

if( ( $total_categories = count($category_rows) ) )
{
Sen efter

Kod: Markera allt

'TOTAL_POSTS' => sprintf($l_total_post_s, $total_posts),
sätter du

Kod: Markera allt

'HOLGER_VAR' => $holger_var,
Och på lämpligt ställe i tpl-filen

Kod: Markera allt

{HOLGER_VAR}
Med säkerhetshål menar jag att det i vissa lägen går att skriva ex: http://dindomäm.tld/sida.php?mode=http: ... laking.php och med allow_url_include på så includeras glatt det php-skriptet om du inte har säkerhetskoll i dina skript.

På en del ställen ex lekis så finns adressen http://lekforum.net/index.php?mode=tidszoner&typ=afrika och det är många som i sin index.php sen har något i stil med

Kod: Markera allt

if(isset($_GET['mode']))
{
  include($_GET['mode'] . '.php');
}
Och då är det ännu enklare för en elaking att få ditt skript att inkludera något som ger honom all info han behöver för att komma åt din databas. Och du anar inte hur många som har samma användare och lösen till databasen, ftp osv.
Eller så låter han skriptet skriva in ett eget skript i din root-katalog (många anser att det är supersäkert om php har samma användare som den som har webbkontot) och sen lägger han en praktisk include() i ditt loginskript som ekar alla användarnamn och lösenord i klartext till honom.
Bild
Developer @ phpBB MOD Team

Behöver du en modifikation skriven/installerad för ditt phpBB-forum? Eller kanske annan specialanpassad kod och/eller en server-administratör? https://tumba25.net/
Användarens profilbild
Kail
Administratör
Administratör
Inlägg: 2935
Blev medlem: 2003-06-03 13:53
Svar: 0
Ort: Linköping/Stockholm

Re: Inkludera extern php-fil

Inlägg av Kail »

Tumba beskriver en sk injection attack då filen du inkluderar på detta sätt tolkas av PHP, med andra ord körs. Jag förstår dock inte poängen med det du försöker göra. Om PHP-filen ligger på en annan server kommer PHP-tolken på den maskinen parsa den innan den skickas till dig via webbservern så du kan inte inkludera oparsad PHP på detta sätt såvida den andra webbservern inte skickar koden obearbetad. Om du bara ska inkluderas dess output bör du använda curl för att göra en vanligt HTTP GET och kunna hantera dessa output som en variabel.
Jakob Persson - Grundare av phpBB Sverige - IT-konsult - http://www.jakob-persson.com
The Complete phpBB Template Design Guide
Användarens profilbild
tumba25
Hedersmedlem
Hedersmedlem
Inlägg: 2097
Blev medlem: 2007-04-18 09:38
Svar: 0
Ort: Kokkola, Finland.

Re: Inkludera extern php-fil

Inlägg av tumba25 »

Om php-filen körs på den andra servern eller skickas som den är beror ju på vilka inställningar och moduler som finns där. Om du stänger av php-modulen skickas själva php-filen som den är.

Fast php-filen i första inlägget hämtar en bild. Om det är den som ska köras på den andra servern och skicka tillbaka bilden så kan du göra det med file_get_contents() och behöver inte ha allow_url_include på.
Bild
Developer @ phpBB MOD Team

Behöver du en modifikation skriven/installerad för ditt phpBB-forum? Eller kanske annan specialanpassad kod och/eller en server-administratör? https://tumba25.net/
Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6554
Blev medlem: 2004-06-09 08:32
Svar: 1
Ort: Hannover/Tyskland
Kontakt:

Re: Inkludera extern php-fil

Inlägg av Holger »

tumba25 skrev:Du får någonstans i index.php sätta include('random_more_pics.php');
Och den får även ligga på en annan server?
Holger Gremminger
Ingen support via PM!
Användarens profilbild
tumba25
Hedersmedlem
Hedersmedlem
Inlägg: 2097
Blev medlem: 2007-04-18 09:38
Svar: 0
Ort: Kokkola, Finland.

Re: Inkludera extern php-fil

Inlägg av tumba25 »

Frågan är ju vad du vill ha.

Vill du att filen ska köras på den andra servern och du egentligen är ute efter resultatet av den körningen så använder du file_get_contens('http://domän.tld/filen.php');

Vill du att filen ska köras på din server måste du först se till att filen inte körs på den andra servern utan att den skickar själva skriptet. Och sen kan du inkludera den med include('http://domän.tld/filen.php'); Men om den ska köras på din server kan du ju lika gärna lägga den på din server på en gång.
Bild
Developer @ phpBB MOD Team

Behöver du en modifikation skriven/installerad för ditt phpBB-forum? Eller kanske annan specialanpassad kod och/eller en server-administratör? https://tumba25.net/
Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6554
Blev medlem: 2004-06-09 08:32
Svar: 1
Ort: Hannover/Tyskland
Kontakt:

Re: Inkludera extern php-fil

Inlägg av Holger »

Nej, den ska köras på den andra servern.
Holger Gremminger
Ingen support via PM!
Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6554
Blev medlem: 2004-06-09 08:32
Svar: 1
Ort: Hannover/Tyskland
Kontakt:

Re: Inkludera extern php-fil

Inlägg av Holger »

Ska jag använda

Kod: Markera allt

file_get_contens('http://domän.tld/filen.php');
istället för

Kod: Markera allt

include('random_more_pics.php');
i beskrivningen ovan?
Holger Gremminger
Ingen support via PM!
Användarens profilbild
tumba25
Hedersmedlem
Hedersmedlem
Inlägg: 2097
Blev medlem: 2007-04-18 09:38
Svar: 0
Ort: Kokkola, Finland.

Re: Inkludera extern php-fil

Inlägg av tumba25 »

Om den ska köras på den andra lägger du bara in.
i index.php efter

Kod: Markera allt

'TOTAL_POSTS' => sprintf($l_total_post_s, $total_posts),
lägger du

Kod: Markera allt

'HOLGER_VAR' => file_get_contents('http://url/filen.php'),
och i tpl-filen

Kod: Markera allt

{HOLGER_VAR}
Bild
Developer @ phpBB MOD Team

Behöver du en modifikation skriven/installerad för ditt phpBB-forum? Eller kanske annan specialanpassad kod och/eller en server-administratör? https://tumba25.net/
Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6554
Blev medlem: 2004-06-09 08:32
Svar: 1
Ort: Hannover/Tyskland
Kontakt:

Re: Inkludera extern php-fil

Inlägg av Holger »

Jag började med att ändra i random_more_pics.php

Kod: Markera allt

define('ROOT_PATH', 'http://www.maskinfotografer.se/');
Resultatet blev dock att {HOLGER_VAR} skapade ett failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error
Holger Gremminger
Ingen support via PM!
Användarens profilbild
tumba25
Hedersmedlem
Hedersmedlem
Inlägg: 2097
Blev medlem: 2007-04-18 09:38
Svar: 0
Ort: Kokkola, Finland.

Re: Inkludera extern php-fil

Inlägg av tumba25 »

Om den ska köras på den andra servern ska du nog inte göra några ändringar i random_more_pics.php.
Bild
Developer @ phpBB MOD Team

Behöver du en modifikation skriven/installerad för ditt phpBB-forum? Eller kanske annan specialanpassad kod och/eller en server-administratör? https://tumba25.net/
Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6554
Blev medlem: 2004-06-09 08:32
Svar: 1
Ort: Hannover/Tyskland
Kontakt:

Re: Inkludera extern php-fil

Inlägg av Holger »

Då får jag fel sökvägar i resultatet som visas på den andra sidan.
Dvs filen hittas och allt aktiveras och visas, men sökvägarna som är beroende av ROOT_PATH får fnatt.
Holger Gremminger
Ingen support via PM!
Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6554
Blev medlem: 2004-06-09 08:32
Svar: 1
Ort: Hannover/Tyskland
Kontakt:

Re: Inkludera extern php-fil

Inlägg av Holger »

Det fixade sig genom att jag ersatte alla ROOT_PATH i echona med det riktiga adressen.
Holger Gremminger
Ingen support via PM!
Skriv svar

Vilka är online

Användare som besöker denna kategori: 7 och 0 gäster