1

Topic: define('PUN_ROOT', './');

Jag funderar på de här kodsnuttarna:

// Make sure no one attempts to run this script "directly"
if (!defined('PUN'))
exit; 


define('PUN_ROOT', './');
require PUN_ROOT.'include/common.php';
require PUN_ROOT.'include/common_admin.php';



PUN och ['PUN_ROOT', './'). Är det någon som kan förklara vad som händer? Definieras PUN och PUN_ROOT här, eller är de "bärare" av något tidigare värde? Vart definieras PUN?

mvh
Bengt U

Re: define('PUN_ROOT', './');

Jag gissar att PUN används för att man inte ska kunna knappa in adressen till t.ex. functions.php och liknande. Finns inte hela sidan med så kan man inte göra något med externa script som functions.php. Har inte kollat var den definieras, men gissningsvis i config eller liknande.

PUN_ROOT är helt enkelt sökvägen till rooten där punbb ligger, istället för att använda en variabel $pun_root och ha "global $pun_root;" i varje funktion så kan man göra såhär. Den definieras precis där du klippt ur koden (ser så ut iaf smile

Re: define('PUN_ROOT', './');

Mycket riktigt så definieras PUN i config.php för att man inte ska kunna köra script utan att config.php har inkluderats.

4

Re: define('PUN_ROOT', './');

bra!

Det är så att jag har del problem med människor som försöker använda mina php-skript för spam (och speciellt dem som innehåller någon form av mail-funkton). Sitter egentligen och funderar på hur jag kan komma runt det problemet och göra dem säkrare, och funderar på hur andra löst detta problem..

Nu har jag installerat punbb och i config.php får jag: define('PUN', 1);. Då är alltså PUN definierad och 1 anger OK! lr?

Jansson wrote:

Mycket riktigt så definieras PUN i config.php för att man inte ska kunna köra script utan att config.php har inkluderats.

Att inkludera config.php är alltså ett sätt att förhindra att någon anropar skriptet utifrån, för att skicka spam osv?


Är det något speciellt i config.php som är extra betydelsefullt för att förhindra spam? De uppgifter som finns där är:

$db_type = 'mysql';
$db_host = 'db.zzz.com';
$db_name = 'tabellnamn';
$db_username = 'användarnamn';
$db_password = 'lösenord';
$db_prefix = 'foo_';
$p_connect = false;

$cookie_name = 'punbb_cookie';
$cookie_domain = '';
$cookie_path = '/';
$cookie_secure = 0;

$language = 'se';

define('PUN', 1);

/ Bengt U

Re: define('PUN_ROOT', './');

Vilket värde du tilldelar PUN spelar ingen roll. Så länge det är definierat är det lugnt. Om du tittar på t.ex. common.php så ser du att den börja med att kontrollera att PUN är definierat. Detta innebär att man inte kan knappa in adressen till common.php i sin webbläsare och på så sätt kanske komma runt någon säkerhetskontroll.

"Programming is like sex: one mistake and you have to support it for the rest of your life."