Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Kontrola i zarządzanie projektami _ Github a projekt i tajemnicze rozwiązania

Napisany przez: miccom 27.03.2021, 10:36:23

Cześć.
Chciałbym rozpocząć przygotowywanie portfolio na github ale nurtuje mnie jedna sprawa.


Jak zabezpieczyć kod aby ukryć niektóre rozwiązania mówię tu np. o takim banale jak zabezpieczeniu formularzy przed zmianami w html'u.
Mam unikalny kod, kilka osób już próbowało go rozkminić- ale nie udało im się co mnie niezmiernie cieszy- ale jeśli udostępnię ten kod na githubie- bardzo łatwo będzie można obejść to zabezpieczenie sad.gif i to mnie już martwi.

Macie jakieś pomysły jak rozwiązać takie elementy?

Napisany przez: viking 27.03.2021, 12:40:27

Wydziel jako prywatne repo.

Napisany przez: miccom 27.03.2021, 13:02:26

Cytat(viking @ 27.03.2021, 12:40:27 ) *
Wydziel jako prywatne repo.


Oki, po co więc tworzyć portfolio skoro tam będą same prywatne repozytoria?

Napisany przez: viking 27.03.2021, 13:05:21

To ty zadałeś takie pytanie . Chcesz udostępnić kod ale tak żeby nikt go nie widział.

Napisany przez: miccom 27.03.2021, 13:46:24

chodziło mi bardziej o zakrywanie niektórych linii kodu ;/

Napisany przez: rad11 28.03.2021, 10:49:37

Przepraszam bardzo ale Ja nie znam czegoś takiego jak unikalny kod możesz nam o tym opowiedzieć?haha.gif

Napisany przez: Pyton_000 28.03.2021, 18:00:04

Od biedy możesz zakodować czymś pokroju ionCube.

Ale zastanowiłbym się na twoim miejscu bo ideą Github/Gitlab itd jest właśnie to że jak coś jest publiczne to każdy ma nieograniczony dostęp do tego. Ukrycie kawałka kodu i udostępnienie tego publicznie to tylko kwestia czasu zanim ktoś to rozkoduje.
Inną kwestią jest to jeżlei to ma być portfolio to po prostu usuń ten kawałek kodu, a jeśli ma to być zarówno source of truh to niesetet musisz się bawić w kodowanie

Napisany przez: vokiel 3.04.2021, 18:07:03

Jeżeli Twoje zabezpieczenie polega na tym, że jest bezpieczne jedynie wtedy gdy ktoś nie wie jak jest zrobione to jest to "Security through obscurity". Taki model zabezpieczeń...

Cytat
Security experts have rejected this view as far back as 1851, and advise that obscurity should never be the only security mechanism.

Napisany przez: miccom 20.04.2021, 18:30:12

Cytat(vokiel @ 3.04.2021, 19:07:03 ) *
Jeżeli Twoje zabezpieczenie polega na tym, że jest bezpieczne jedynie wtedy gdy ktoś nie wie jak jest zrobione to jest to "Security through obscurity". Taki model zabezpieczeń...


Bardziej chodzi mi o to że np. koduję pewne dane i do zakodowania i rozkodowania potrzebuję hasło smile.gif
I np. tego hasła nie chciałbym udostępniać smile.gif

Nie chodzi mi o tajne kody i tajne rozwiązania bo takowych nie ma smile.gif a poza tym takich jeszcze nie potrafię tworzyć smile.gif

Napisany przez: Pyton_000 20.04.2021, 18:49:21

no to hasło wrzucasz sobie do .env w projekcie ale tego pliku nie commitujesz...

Napisany przez: miccom 24.04.2021, 13:32:13

Cytat(Pyton_000 @ 20.04.2021, 19:49:21 ) *
no to hasło wrzucasz sobie do .env w projekcie ale tego pliku nie commitujesz...


Idealnie, i to jest super rozwiązanie smile.gif
Pyton_000, jesteś wielki smile.gif

Dla drwiących podaję kod który nie powinien być publiczny....


  1.  
  2. //Kodujemy tajne dane
  3. $haslo = "tajne haslo, które nie powinno byc dostepne";
  4. $t["cena"] = $cena;
  5. $t["gold"] = 0;
  6. $t["adres"] = 1;
  7. $dane_first = http://www.php.net/base64_encode(http://www.php.net/serialize($t));
  8. $dane_second = http://www.php.net/md5($haslo . $dane_first);
  9. $cena_actual = '<strong>' . $cena . '</strong> '. panel_gry6;
  10. $kup_t = "<div class=\"zakup_sklep\" num=\"" . $dane_first . "\" code=\"" . $dane_second . "\">" . sklep4 . "</div>";


Gdybym przesłał te dane jako dane jawne, można je edytować w każdej przeglądarce podglądając kod źródłowy.

O ile rozkodować $dane_first i podstawić swoje dane to nie problem, to $dane_second już nie będzie takie proste nie znając hasła smile.gif

  1. //Rozkodowanie danych
  2.  
  3. $haslo = "tajne haslo, które nie powinno byc dostepne";
  4. $md5 = $this->path->num;
  5. $dane = $this->path->code;
  6.  
  7. if ($md5 <> http://www.php.net/md5($haslo . $dane)) {
  8. // uwaga... dane modyfikowane
  9. $stuffReverse['error'] = "błędne dane wejściowe";
  10. //exit();
  11. } else {
  12. $t = http://www.php.net/unserialize(http://www.php.net/base64_decode($dane));
  13. // dalsza obróbka na poprawnych danych
  14. //$t = zakodowane dane chronione przed np. edycją kodu źródłowego w konsoli ;)
  15. }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)