---
title: "Include säkerhet"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/167721-include-säkerhet"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Mr T"
published: "2008-01-02T13:56:37.000Z"
updated: "2008-09-12T16:20:40.000Z"
replies: 10
views: 1045
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/167721-include-säkerhet"
---

# Include säkerhet

## #1 — Mr T, 2008-01-02T13:56Z

Bakgrund:
 Efter att i flera år gjort allt själv börjar jag inse inse tidsbesparandet att använda redan färdiga PHP script till div. funktioner. Ofta är dom script man tankar hem enkla att lägga upp. Ofta är det bara en configurations-fil man bahöver ändra div. variabler i för att få det att funka. 

Läst på i en tidigare diskusion (<http://www.webforum.nu/showthread.php?t=163281> ) om att med med include kommandot ibland kan länka till en "fullständig" url-adress (www.domännamn...osv.).

Fråga :
 Kan någon som vet configurations-filens namn och adress komma åt innehållet i dess variabler ?
 Om man kan komma åt saker så som lösenord till databaser, kan dom då utifrån (från en anna server) ex. rensa och ta bort mina tabeller?

 Altså, hur mycket helvete kan dom (dom = folk som vill jävlas) göra mot min sida, och hur löser man det när man som jag använder andras script och deras redan diffinerade filnamn och variabler ?

Permalänk: https://www.webforum.nu/p/167721

## #2 — stevenet, 2008-01-02T15:25Z

Såvida du inte har en felinstallerad webbserver kommer de bara få ut det körda skriptet. Största faran är förmodligen någon form av XSS-attack, där hackaren kan  kapa dina användares sessioner. 

Om skriptet är utformat så att det inte kontrollerar om den inkluderade filen är lokal eller inte, skulle jag rekommendera dig att antingen fixa det, eller slänga det helt.

Enkelt exempel:

```php
<?php
$allowed_pages = array ("guestbook", "blog");

if(in_array($_GET["page"], $allowed_pages)) {
    include($_GET["page"].".php");
}
?>
```

Permalänk: https://www.webforum.nu/p/2067464

## #3 — Ledel, 2008-01-02T15:36Z

Om vi antar att du har följande kod:

```php
$mySecretDBPassword = "superpass";
include($_GET['inc'] . "php");
```

Och sedan bestämmer filen du vill inkludera: <http://www.sida.com/page.php?inc=databasefunction>

Så kan ju jag skriva: <http://www.sida.com/page.php?inc=MINSIDA/MITTSCRIPT?s=>
Då kommer du försöka inkludera MINSIDA/MITTSCRIPT?s=.php, och det sista är ju  en Querystring så den spelar ingen roll. Vet jag då vad dina variabler heter kan jag ju, i mitt script, skriva ut innehållet i $mySecretDBPassword. Inte så bra ;)

Permalänk: https://www.webforum.nu/p/2067467

## #4 — stevenet, 2008-01-02T16:22Z

> **Ledel skrev:**
>
> Om vi antar att du har följande kod:
>
>
> ```php
> $mySecretDBPassword = "superpass";
> include($_GET['inc'] . "php");
> ```
>
> 
> 
> Och sedan bestämmer filen du vill inkludera: <http://www.sida.com/page.php?inc=databasefunction>
> 
> Så kan ju jag skriva: <http://www.sida.com/page.php?inc=MINSIDA/MITTSCRIPT?s=>
> Då kommer du försöka inkludera MINSIDA/MITTSCRIPT?s=.php, och det sista är ju  en Querystring så den spelar ingen roll. Vet jag då vad dina variabler heter kan jag ju, i mitt script, skriva ut innehållet i $mySecretDBPassword. Inte så bra ;)

"va?"

Permalänk: https://www.webforum.nu/p/2067477

## #5 — Mr T, 2008-01-02T17:23Z

Lite förvirrad då jag inser att samtalet hamnar lite i hårtopparna på mig. Jag gör ett exempel så får vi se om jag får ett svar på min, lite lägre, nivå   :) 

filen **variabler.php** innehåller bla.
*$databasen = "min.databas.com";
$databaslogin = "hemligt";
$databaslösen = "såiniHhemligt";
$annanvariabel = "hemligt hemligt";*

I filen **spottautdata.php** ser det bla. ut såhär:
*include("variabler.php");
// Öppna databasen
$databasen = mysql_pconnect($databasen, $databaslogin, $databaslösen);
$data = ......* 

Min fråga är : Om ni vet att filen heter **variabler.php** och vet variablernas namn, kan man då från en anna domän plocka ut den informationen ? 
 Om man nu vet databas, login och lösen kan man då från annan domän plocka data från databasen ?

Permalänk: https://www.webforum.nu/p/2067494

## #6 — Pedda, 2008-01-02T17:40Z

Om allow_url_fopen i php.ini är avstängt så kan man inte läsa in filen via include()
Har testat med ini_set('allow_url_fopen', 'on'); men det gick inte iaf.
Men det kanske finns något sätt att gå runt det på ändå.

Permalänk: https://www.webforum.nu/p/2067501

## #7 — stevenet, 2008-01-02T17:48Z

> **Pedda skrev:**
>
> Om allow_url_fopen i php.ini är avstängt så kan man inte läsa in filen via include()
> Har testat med ini_set('allow_url_fopen', 'on'); men det gick inte iaf.
> Men det kanske finns något sätt att gå runt det på ändå.

Hurvida man kan inkludera externa sidor sätts via allow_url_include.

> **Mr T skrev:**
>
> Lite förvirrad då jag inser att samtalet hamnar lite i hårtopparna på mig. Jag gör ett exempel så får vi se om jag får ett svar på min, lite lägre, nivå   :) 
> 
> filen **variabler.php** innehåller bla.
> *$databasen = "min.databas.com";
> $databaslogin = "hemligt";
> $databaslösen = "såiniHhemligt";
> $annanvariabel = "hemligt hemligt";*
> 
> 
> I filen **spottautdata.php** ser det bla. ut såhär:
> *include("variabler.php");
> // Öppna databasen
> $databasen = mysql_pconnect($databasen, $databaslogin, $databaslösen);
> $data = ......* 
> 
> 
> Min fråga är : Om ni vet att filen heter **variabler.php** och vet variablernas namn, kan man då från en anna domän plocka ut den informationen ? 
>  Om man nu vet databas, login och lösen kan man då från annan domän plocka data från databasen ?

Nej, man kan fortfarande inte komma åt exekverad kod. Vad du istället ska oroa dig för är XSS. Kontrollera och filtrera indatan!

Permalänk: https://www.webforum.nu/p/2067505

## #8 — Mr T, 2008-01-02T19:07Z

XSS ?

(Snacka om att känna sig som en Lamer ibland på detta forumet.)

Permalänk: https://www.webforum.nu/p/2067548

## #9 — stevenet, 2008-01-02T19:19Z

Läs mer här:
<http://www.swesecure.com/?ID=dc6ea60a-12ae-4e7e-9e9c-59489ccafa90&IID=436d5180-8909-4aa2-baee-7c8f925d6eab>

Permalänk: https://www.webforum.nu/p/2067552

## #10 — Mr T, 2008-01-03T12:11Z

Tack !

Permalänk: https://www.webforum.nu/p/2067676

## #11 — Mr T, 2008-09-12T16:20Z

Vill tacka all som gjort inlägg i denna tråden tidigare.

 Har försökt att ta till mig all kritik ni gett mig. Vill nu se hur väl jag lyckats.
 Har byggt ett busenkelt CMS-system. Innan jag börjar använda det, vill jag se om ni ser några risker med systemet och att jag lämnar ut alla uppgifter om systemet på sidan nedan. 
 Just på denna sidan har jag låtit alla få prova på, detta gör att stevenets påpekande om XSS är påfallande, men då det (väll) endast är mitt ev. admin lösen som kan snos på denna sidan, ser jag det som en acceptabel risk. När systemet är igång är det ju inte tänkt att andra än aministratörerna ska kunna ändra på sidan.

Så ta en titt och ge kritik tack och se gärna om ni kan hacka systemet. (ställ dock inte till det för J för mig tack)

<http://cms.axplock.com/>

Permalänk: https://www.webforum.nu/p/2141336

---

Tråden på webben: https://www.webforum.nu/amne/php/167721-include-säkerhet
