🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.php
2 messages
2 total messages Started by jivanmukta Mon, 08 Dec 2014 10:36
bezpieczeństwo instrukcji require
#230775
Author: jivanmukta
Date: Mon, 08 Dec 2014 10:36
23 lines
2088 bytes
Uczę się PHP5 i CodeIgnitera. Mam dwa pliki definicji stałych (instrukcje define): application/config/localhost_constants.php i application/config/hosting_constants.php. Chciałbym używać tych stałych w pliku application/scripts/constants.sh, żeby nie powielać defincji stałych. Zrobiłem tak (plik constants.sh):

ENVIRONMENT=$(grep "define('ENVIRONMENT'" <~/public_html/index.php | cut -f 2 -d , | tr -d [:space:][:punct:])
if [ $ENVIRONMENT = "production" ];
then
    server=hosting
else
    server=localhost
fi
mysql_server="$(php constant.php $server MYSQL_SERVER)"
mysql_database="$(php constant.php $server MYSQL_DATABASE)"
...

Plik application/scripts/constant.php ma zawartość:

<?php
$server = addslashes($argv[1]);
require "../application/config/{$server}_constants.php";
echo constant($argv[2]);

Czy takie rozwiązanie jest bezpieczne? Chodzi mi w szczególności o instrukcję:
  require "../application/config/{$server}_constants.php";
Były wdzięczny za uwagi.
Re: bezpieczeństwo instrukcji require
#230777
Author: Borys Pogoreło
Date: Wed, 10 Dec 2014 19:53
16 lines
1332 bytes
Dnia Mon, 8 Dec 2014 02:36:06 -0800 (PST), jivanmukta@poczta.onet.pl
napisał(a):

> Czy takie rozwiązanie jest bezpieczne? Chodzi mi w szczególności o instrukcję:
>   require "../application/config/{$server}_constants.php";

W tej sytuacji teoretycznie bezpieczne, ale tak przekombinowane, że jestem
pełen podziwu dla kreatywności.

hint: SetEnv ENV_TYPE testing

I w czym ma pomóc wykonanie addslashes() na ścieżce do pliku?

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads