[SOLVED][PHP/SQL] Jak dodać kod do bazy danych, aby po pobraniu wykonał się?

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
17piotrek

[SOLVED][PHP/SQL] Jak dodać kod do bazy danych, aby po pobraniu wykonał się?

Post autor: 17piotrek »

Witam wszystkich:)

Mam pewien problem. Mianowicie, chciałbym dodać kod php do bazy danych, aby po pobraniu wykonał się. Np. w bazie danych:

Kod: Zaznacz cały

<?php echo "aaa"; ?>
a efekt to "aaa" na stronie. Jest to możliwe? Jesli tak to w jaki sposób dodać kod do bazy/jak pobrać gotowy skrypt, żeby wykonał się on u klienta?
Awatar użytkownika
kamilsilver
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 105
Rejestracja: 06 lis 2008, 21:53
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: KDE Plasma
Architektura: x86

Odp: [PHP/SQL] Jak dodać kod do bazy danych, aby po pobraniu wykonał się?

Post autor: kamilsilver »

Kod PHP zawsze wykonuje się po stronie serwera, klient dostaje tylko gotowy kod HTMLa.
Co do polecenia chodzi ci o to, że pliki php masz zapisane w bazie danych i chcesz, aby podczas wyświetlenia jakiejś strony (żądanie klienta), skrypt pobrał swój kod z bazy danych i je wykonał?
To raczej się nie wykona, bo serwer apache potraktuje kod jako surowy tekst z bazy.
Hmm, nie wiem do końca czy to jest wykonalne, poszukam w swoich źródłach (książki).

Nie lepiej zapisać kod w osobnych plikach i skorzystać z funkcji include()?
Na razie nic nie znalazłem, w ostateczności możesz zapisać zawartość z bazy do pliku i include.
17piotrek

Odp: [PHP/SQL] Jak dodać kod do bazy danych, aby po pobraniu wykonał się?

Post autor: 17piotrek »

Wiem, ze kod wykonuje sie na serwerze, ale myslalem, ze moze z bazy dostaje kod, ktory dopiero po analizie jest wysylany do klienta, czyli np. dostanie blok php i na biegu przetworzy go na html. Nie chodzi o strony, tylko o wstrzykniecie malego xss...
dam
Sędziwy Jeż
Sędziwy Jeż
Posty: 40
Rejestracja: 21 maja 2008, 20:43
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: [PHP/SQL] Jak dodać kod do bazy danych, aby po pobraniu wykonał się?

Post autor: dam »

Jeśli dobrze rozumie to funkcja eval powinna pomóc.
17piotrek

Odp: [PHP/SQL] Jak dodać kod do bazy danych, aby po pobraniu wykonał się?

Post autor: 17piotrek »

O ile dobrze zrozumialem tą funkcję, to powinno się jej użyć mniej więcej tak:

Kod: Zaznacz cały

while ($wynik = mysql_fetch_array($result))
{
eval $wynik['kolumna_z_zapytaniem'];
}
???

Ale ja nie mogę zmienić kodu strony, jedyne co mogę to umieścic zapytanie w bazie danych... Więc to pewnie nie jest możliwe? Chciałbym tak skonstruować zapytanie do bazy, żeby wypluła mi jakies wyniki przy odczytaniu tej tabeli, więc pewnie to niezbyt mozliwe?
dam
Sędziwy Jeż
Sędziwy Jeż
Posty: 40
Rejestracja: 21 maja 2008, 20:43
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: [PHP/SQL] Jak dodać kod do bazy danych, aby po pobraniu wykonał się?

Post autor: dam »

Wydaje mi się że, to o czym piszesz nie jest możliwe.
przemk
Przyjaciel
Przyjaciel
Posty: 332
Rejestracja: 13 paź 2005, 12:44
Płeć: Mężczyzna
Wersja Ubuntu: 11.10
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: [PHP/SQL] Jak dodać kod do bazy danych, aby po pobraniu wykonał się?

Post autor: przemk »

17piotrek pisze:Chciałbym tak skonstruować zapytanie do bazy, żeby wypluła mi jakies wyniki przy odczytaniu tej tabeli, więc pewnie to niezbyt mozliwe?
Wybacz, ale nie piszesz zbyt jasno. Napisz dokładnie (na przykładzie) co chcesz osiągnąć i co masz do dyspozycji
[url=http://kalicki.it]http://kalicki.it[/url]
Awatar użytkownika
kamilsilver
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 105
Rejestracja: 06 lis 2008, 21:53
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: KDE Plasma
Architektura: x86

Odp: [PHP/SQL] Jak dodać kod do bazy danych, aby po pobraniu wykonał się?

Post autor: kamilsilver »

Czytając przemk twoją wypowiedź przypomniała mi się jedna stronka http://rtfm.killfile.pl/ :)
17piotrek napisz nam łopatologicznie w czym problem. Co dokładnie chcesz zrobić, co możesz, a co nie? Musimy wskoczyć jakoś na ten jadący pociąg.

XSS? czyli chcesz się włamać do czyjejś stronki? ;p Oj nie ładnie xD
17piotrek

Odp: [PHP/SQL] Jak dodać kod do bazy danych, aby po pobraniu wykonał się?

Post autor: 17piotrek »

Oki, sorki, juz pisze wyrazniej.

Mam przed soba baze danych z tabela uzytkownikow. Skrypt wstawiajacy nowego usera nie jest jednak zbyt dobrze skonstruowany. Moge wstawic PHP w czystej postaci, bez escapowania cudzyslowow itp np rekord:

Kod: Zaznacz cały

$query = "select * from uzytkownicy";
wejdzie do bazy bez zadnych ukosnikow przy cudzyslowach itp. Podczas rejestracji mam tyle pol do wypelnienia, ze moge w partiach napisac skrypt, ktory pobierze mi wszystkich uzytkownikow z bazy i wyprintuje na ekran. Tylko nie wiem jak zrobic, aby kod, ktory bedzie pobrany z bazy byl wykonywany jako PHP a nie jako zwykly tekst. Jest to wykonalne? Bo tez mi sie wydaje ze nie - prawdziwy kod jest wykonywany po stronie serwera, to zas co jest wstawione do bazy jest wysylane do klienta jako tekst... Wpadlem na inny pomysl - napisac skrypt na zewnetrznym serwerze i dolaczyc jako kod javascript (< script src="" >) ale wykonuje on sie na serwerze z ktorego go zalaczam, a nie na tym na ktorym jest załączony. Ma ktos inny pomysl?

@kamilsilver - czego to sie nie zrobi wlasnemu nauczycielowi infy zeby nauczyl sie zabezpieczac strony.... No wybacz ale ile mozna:)
Awatar użytkownika
kamilsilver
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 105
Rejestracja: 06 lis 2008, 21:53
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: KDE Plasma
Architektura: x86

Odp: [PHP/SQL] Jak dodać kod do bazy danych, aby po pobraniu wykonał się?

Post autor: kamilsilver »

Ano jak stronę robi się na gorąco :) Ale nauczyciel Informatyki? ;/ Zapodaj link do strony xD
Aż tak to się nie znam, dawno nie bawiłem się w PHP i MySQLa ;/
17piotrek

Odp: [PHP/SQL] Jak dodać kod do bazy danych, aby po pobraniu wykonał się?

Post autor: 17piotrek »

No raczej nie powinienem tego robic az nie zabezpieczy strony:P
Jacob
Piegowaty Guziec
Piegowaty Guziec
Posty: 8
Rejestracja: 06 lut 2007, 08:23
Płeć: Mężczyzna
Wersja Ubuntu: 6.10
Środowisko graficzne: LXDE
Architektura: x86

Odp: [PHP/SQL] Jak dodać kod do bazy danych, aby po pobraniu wykonał się?

Post autor: Jacob »

Wybacz, ale temat ma już 10 postów, a ja dalej (i zapewne nie tylko ja) nie wiem, czego ty chcesz. Najpierw piszesz, że chcesz XSS, potem, żeby był wykonywany kod php ... to w końcu co?

"wejdzie do bazy bez zadnych ukosnikow przy cudzyslowach" - jeśli nie masz bezpośredniego dostępu do bazy, to skąd wiesz? bo jako output widzisz tekst "bez zadnych ukosnikow"? to o niczym nie świadczy. Poczytaj o addslashes() i stripslashes()

A jak XSS (standardowe: <script>alert("foo bar");</script>) nie działa, i jako output pokazuje: <script>alert("foo bar");</script> lub alert("foo bar"); to znaczy, że została użyta funkcja htmlspecialchars (w pierwszym wypadku), strip_tags (w drugim).

Na zakończenie: lepiej zabierz się do porządnej nauki PHP, a nie czytania setki tutków o XSS/SQL Injection ...
17piotrek

Odp: [PHP/SQL] Jak dodać kod do bazy danych, aby po pobraniu wykonał się?

Post autor: 17piotrek »

@Jacob - ja ten jezyk mam dobrze obczajony. Wiem co daja wszystkie funkcje o ktorych mowiles. A wstrzykniecie kodu (w tym przypadku PHP) tez bedzie XSS. Nie ma ani htmlspecialchars (JS wykonuje sie), ani escapowania cudzyslowow. Chodzilo mi o to czy da sie dodac taki wpis do bazy, zeby wykonal sie po pobraniu, np. wpisanie:

Kod: Zaznacz cały

echo "aaa";
do przegladarki bylo wyslane "aaa", a nie kod php.
"wejdzie do bazy bez zadnych ukosnikow przy cudzyslowach" - jeśli nie masz bezpośredniego dostępu do bazy, to skąd wiesz? bo jako output widzisz tekst "bez zadnych ukosnikow"? to o niczym nie świadczy. Poczytaj o addslashes() i stripslashes()
Tutaj chodzi o to, ze wlasnie nie jest uzyta funkcja addslashes, kod jest wstawiany bez zmian do bazy; myslalem nad taką opcją, czy bylalby opcja zeby kod pobrany z bazy wykonal sie od razu, ale juz wiem ze nei jest to mozliwe.
Na zakończenie: lepiej zabierz się do porządnej nauki PHP, a nie czytania setki tutków o XSS/SQL Injection ...
O XSS i SQL injection wiem malo, wszystko co robie to na wlasnym doswiadczeniu i wlasnie wiedzy o php/sql...

No ale nie wazne, tak czy inaczej, zrobilem to w inny sposob, udalo sie. A ku podsumowaniu tematu - nie mozna kodu php tak wykonac, gdyz jest on raz przetwarzany na serwerze, a dane z bazy sa wysylane do uzytkownika jako html.
przemk
Przyjaciel
Przyjaciel
Posty: 332
Rejestracja: 13 paź 2005, 12:44
Płeć: Mężczyzna
Wersja Ubuntu: 11.10
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: [PHP/SQL] Jak dodać kod do bazy danych, aby po pobraniu wykonał się?

Post autor: przemk »

kamilsilver pisze:Czytając przemk twoją wypowiedź przypomniała mi się jedna stronka http://rtfm.killfile.pl/ :)
Dlaczego akurat ta?
[url=http://kalicki.it]http://kalicki.it[/url]
Awatar użytkownika
kamilsilver
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 105
Rejestracja: 06 lis 2008, 21:53
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: KDE Plasma
Architektura: x86

Odp: [SOLVED][PHP/SQL] Jak dodać kod do bazy danych, aby po pobraniu wykonał się?

Post autor: kamilsilver »

Po prostu mi się przypomniała ta strona. Bo do końca nie zrozumiałem pierwszego pytania, było dla mnie lekko niezrozumiałe.
Wybacz, ale nie piszesz zbyt jasno
szczególnie te zdanie mi przypomniało ten tutorial :)

@17piotrek daj znać czy nauczyciel nauczył się zabezpieczać strony po twoim triku :)
17piotrek

Odp: [SOLVED][PHP/SQL] Jak dodać kod do bazy danych, aby po pobraniu wykonał się?

Post autor: 17piotrek »

Dzis z nim gadalem - chcialem zeby puscil wszystkich do trzeciej klasy z fizyki, a ja mu pokaze wszystkie luki i jak je zabezpieczyc, ale nie chce sie zgodzic. Rekrutacja nadal narazona, moze jakiegos bota spamujacego?:) Najlepiej z serwera szkolnego:P
Awatar użytkownika
kamilsilver
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 105
Rejestracja: 06 lis 2008, 21:53
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: KDE Plasma
Architektura: x86

Odp: [SOLVED][PHP/SQL] Jak dodać kod do bazy danych, aby po pobraniu wykonał się?

Post autor: kamilsilver »

Lepiej sobie daruj. Szkoda nerwów na takich ludzi. Nie chce zabezpieczenia, jego sprawa.
chcialem zeby puscil wszystkich do trzeciej klasy z fizyki
Tego zdania nie czaję. Nie każdy z tego forum chodzi do twojej szkoły.
pawelbial
Piegowaty Guziec
Piegowaty Guziec
Posty: 5
Rejestracja: 16 maja 2007, 08:32
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: KDE Plasma
Kontakt:

Odp: [SOLVED][PHP/SQL] Jak dodać kod do bazy danych, aby po pobraniu wykonał się?

Post autor: pawelbial »

Zapewne nauczyciel informatyki jest zarazem nauczycielem fizyki no i aby nie było problemów z fizyką to mały szantaż informatyką - przynajmniej ja to tak rozumiem.
17piotrek

Odp: [SOLVED][PHP/SQL] Jak dodać kod do bazy danych, aby po pobraniu wykonał się?

Post autor: 17piotrek »

Dokladnie;) Jak wiadomo, fizyka, zwlaszcza rozszerzona, do latwych nie nalezy, a w ten sposob kilka osob mogloby spac spokojniej:D Po prostu chcialem, zeby wszystkich przepuscil w tym roku z fizyki (uczy infy i fizy). Mam nadzieje, ze teraz wyrazilem sie jasno:)
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 27 gości