Anti-Spam Form dla Yii2 Framework

Anti-Spam Form jest komponentem zastępującym standardowe formy ActiveForm dla Yii2 Framework z ochroną anty-spamową, które są niewidoczne w kodzie HTML dla botów spamowych i narzędzi do zbierania danych (tzw. harvestery).

Jaka jest idea stojąca za formularzami antyspamowymi?

Koncepcja jest prosta. Boty spamowe w większości przypadków są prostymi narzędziami. Potrafią czytać Twoją stronę, szukać znaczników <form> w kodzie HTML i sztucznie wypełniać pola formularza i wysyłać go.

Zwykły bot spamowy to w 99% przypadków web scraper napisany w Pythonie pobierający zawartość strony HTML bez wykonywania kodu JS.

Ale jedną rzeczą pominiętą w metodach wykrywania spamu jest to, że boty spamowe zwykle nie mogą przetwarzać kodu JavaScript. Jest to czasochłonne i wymaga interpretera JS do wykonania kodu na stronie. Aby to osiągnąć należy już wykorzystać bardziej złożone i wolniejsze silniki, zwykle oparte o Chromium.

Jak pokonać spam boty?

Proste – umieścić formularze HTML z zakodowanymi tagami HTML <form> w formie kodu JavaScript. Nie cały formularz, ale początkowy tag ze wszystkimi jego właściwościami.

Nagle boty spamowe nie są w stanie go znaleźć. Mniej spamu bez zbyt wiele pracy.

Zwykle kod formularza wygląda następująco:

<div class="active-form">
  <!--visible <form> tag -->  
  <form id="contact-form" action="/contact" method="post">
    <input type="hidden" name="_csrf" value="u18o4NxJC5lZEhHhjpMTd-c7p3ZzYzl0wvsXMiefJJ_0HWGpr1pm6x5Qa4vnpVw5o1yXNzEQ7USUlE9HVNlGzQ==">
    <div class="form-group field-contactform-name required">
      <label class="control-label" for="contactform-name">Name</label>
      <input type="text" id="contactform-name" class="form-control" name="ContactForm[name]" aria-required="true">
      <p class="help-block help-block-error"></p>
    </div>
    <div class="form-group field-contactform-email required">
      <label class="control-label" for="contactform-email">Email</label>
      <input type="email" id="contactform-email" class="form-control" name="ContactForm[email]" aria-required="true">
      <p class="help-block help-block-error"></p>
    </div>
    <div class="form-group field-contactform-subject required">
      <label class="control-label" for="contactform-subject">Subject</label>
      <input type="text" id="contactform-subject" class="form-control" name="ContactForm[subject]" aria-required="true">
      <p class="help-block help-block-error"></p>
    </div>
    <div class="form-group field-contactform-body required">
      <label class="control-label" for="contactform-body">Body</label>
      <textarea id="contactform-body" class="form-control" name="ContactForm[body]" rows="6" aria-required="true"></textarea>
      <p class="help-block help-block-error"></p>
    </div>
    <div class="form-group field-contactform-verifycode">
      <label class="control-label" for="contactform-verifycode">Verification Code</label>
      <div class="row">
        <div class="col-xs-4 col-sm-3 col-md-3">
          <img id="contactform-verifycode-image" src="/site/captcha?v=62cff29d6ebe55.89254929" alt="">
        </div>
        <div class="col-xs-2 col-sm-3 col-md-3">
          <input type="text" id="contactform-verifycode" class="form-control" name="ContactForm[verifyCode]">
        </div>
        <div class="col-xs-6 col-sm-6 col-md-6">
          <button type="submit" class="btn btn-block btn-primary" name="contact-button">Send</button>
        </div>
      </div>
      <p class="help-block help-block-error"></p>
    </div>
  </form>
</div>

Po wykorzystaniu komponentu anty-spamerskiego:

<div class="active-form">
  <!-- <form> tag dynamically generated with the JavaScript code -->    
  <script>
    document.write(atob("PGZvcm0gaWQ9ImNvbnRhY3QtZm9ybSIgYWN0aW9uPSIvY29udGFjdCIgbWV0aG9kPSJwb3N0Ij4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iX2NzcmYiIHZhbHVlPSJ1MFczN0JLaDJOQko2Q2lVeTFxc3R3OEp6aC1mcUxxOXRnOEpQem9CUjZfMEJfNmxYX0sxb2c2cVV2NmliT1A1UzI3LVh0M2F6bzNnWUZGS1NVY2xfUT09Ij4="));
  </script>
  <div class="form-group field-contactform-name required">
    <label class="control-label" for="contactform-name">Name</label>
    <input type="text" id="contactform-name" class="form-control" name="ContactForm[name]" aria-required="true">
    <p class="help-block help-block-error"></p>
  </div>
  <div class="form-group field-contactform-email required">
    <label class="control-label" for="contactform-email">Email</label>
    <input type="email" id="contactform-email" class="form-control" name="ContactForm[email]" aria-required="true">
    <p class="help-block help-block-error"></p>
  </div>
  <div class="form-group field-contactform-subject required">
    <label class="control-label" for="contactform-subject">Subject</label>
    <input type="text" id="contactform-subject" class="form-control" name="ContactForm[subject]" aria-required="true">
    <p class="help-block help-block-error"></p>
  </div>
  <div class="form-group field-contactform-body required">
    <label class="control-label" for="contactform-body">Body</label>
    <textarea id="contactform-body" class="form-control" name="ContactForm[body]" rows="6" aria-required="true"></textarea>
    <p class="help-block help-block-error"></p>
  </div>
  <div class="form-group field-contactform-verifycode">
    <label class="control-label" for="contactform-verifycode">Verification Code</label>
    <div class="row">
      <div class="col-xs-4 col-sm-3 col-md-3">
        <img id="contactform-verifycode-image" src="/site/captcha?v=62cff214a00af2.73036299" alt="">
      </div>
      <div class="col-xs-2 col-sm-3 col-md-3">
        <input type="text" id="contactform-verifycode" class="form-control" name="ContactForm[verifyCode]">
      </div>
      <div class="col-xs-6 col-sm-6 col-md-6">
        <button type="submit" class="btn btn-block btn-primary" name="contact-button">Send</button>
      </div>
    </div>
    <p class="help-block help-block-error"></p>
  </div>
  </form>
</div>

Kody źródłowe https://github.com/PELock/yii2-anti-spam-form

Paczka dla PHP https://packagist.org/packages/pelock/yii2-anti-spam-form

Jak odblokować radio w samochodzie?

Z tego artykułu dowiesz się jak odblokować radio w samochodzie popularnych marek, jak uzyskać numer seryjny radia oraz skąd wziąć kod odblokowujący radioodbiornik w aucie.

Zablokowane radio samochodowe

Po awarii lub odłączeniu akumulatora samochodowego, radio samochodowe często pozostaje zablokowane i żeby ponownie móc z niego skorzystać wymagany jest kod zabezpieczający, aby urządzenie zaczęło działać.

Fiat Stilo i Bravo kod odblokowujący do auta.
Fiat Stilo i Bravo kod odblokowujący do auta.

Jeśli jednak nie możesz znaleźć kodu dla swojego radia, nie panikuj. Ten przewodnik pomoże Ci wygenerować kod radia samochodowego popularnych marek.

Jak odblokować odtwarzacz w aucie?

Do poprawnego wygenerowania kodu odblokowującego radio potrzebne są dwie rzeczy.

  • Numer seryjny radia lub czasami tzw. pre-code (kod wstępny) wyświetlany na wyświetlaczu
  • Numer odblokowujący

Numer seryjny radia

Numer seryjny radia można znaleźć na tabliczce znamionowej radia, ale wymaga to demontażu samego odtwarzacza, nie jest to jakieś problematyczne i na kolejnych podstronach znajdziesz poradniki jak to zrobić dla konkretnych modeli aut.

Pre code dla Renault / Dacia na tabliczce znamionowej z tyłu radia.
Pre code dla Renault / Dacia na tabliczce znamionowej z tyłu radia.

Pre-code

Czasami wymagany jest tzw. pre-code zamiast numeru seryjnego radia, jest on zwykle wyświetlany na wyświetlaczu radioodtwarzacza lub wymagane jest naciśnięcie odpowiedniej sekwencji klawiszy na radioodbiorniku, aby pojawił się na wyświetlaczu.

Pre code (tzw. kod ERC) dla radia w samochodach Toyota
Pre code (tzw. kod ERC) dla radia w samochodach Toyota

Kod odblokowujący

Mając numer seryjny radia należy wygenerować kod odblokowujący tzw. unlock code. Zwyczajowo idzie się z tym do ASO i płaci duże pieniądze (jak to w ASO, kto był raz – ten rozumie).

Można jednak sporo zaoszczędzić generując kod u niezależnych dostawców kodów radiowych, którzy wykorzystując reverse engineering analizują oprogramowanie w radioodbiornikach i potrafią stworzyć kalkulatory kodów radiowych.

Generatory i kalkulatory kodów odblokowujących do radia

Poniżej znajdziesz generatory kodów odblokowujących do popularnych modeli samochodów i radioodtwarzaczy.

W każdym odnośniku znajdziesz dokładne instrukcje, które poprowadzą cię krok po kroku, aby odblokować swoje radio.

Renault i Dacia Kod Do Radia Samochodowego Kalkulator i Generator
Dacia Duster, Sandero
Renault i Dacia Kod Do Radia Samochodowego Kalkulator i Generator
Renault Laguna, Megane
Fiat Stilo i Bravo Kod Do Radia Visteon Kalkulator i Generator
Fiat Stilo i Bravo
Ford Kod Do Radia M Seria Kalkulator i Generator
Ford Focus, Fiesta, Mondeo
Ford Kod Do Radia V Seria Kalkulator i Generator
Ford Transit, Escort, Fusion
Chrysler Panasonic TM9 Kod Do Radia Samochodowego Kalkulator i Generator
Chrysler Panasonic TM9
Toyota ERC Kalkulator i Generator Kodu Do Odblokowania Radia
Toyota ERC Kalkulator
Jeep Cherokee Kod Do Odblokowania Radia Kalkulator i Generator
Jeep Cherokee i Grand Cherokee

Konferencja na 25-lecie Studenckiego Koła Naukowego Informatyków “KOD”

Informatyka to Twoja pasja lub wiążesz z nią swoją przyszłość? Intresują Cię nowoczesne technologie? A może zwyczajnie masz chwilę, i chciałbyś się dowiedzieć czegoś nowego w tym temacie?

Świetnie się składa, bo Studenckie Koło Naukowe Informatyków „KOD” właśnie organizuje konferencję na 25 – lecie swojej działalności!

https://kod.prz.edu.pl/konferencja

Przewodniczyć jej będą specjaliści z wieloletnim doświadczeniem w IT, którzy przedstawią prelekcje na temat pracy w branży. Zaprezentują się również studenci Politechniki Rzeszowskiej, którzy pokażą wiele różnorodnych, innowacyjnych projektów wykonanych podczas pracy w kole (m.in. prezentacja systemu operacyjnego MicrOS oraz gry Roguelike).

Podczas wydarzenia przewidziane są także wyjątkowe konkursy z nagrodami.

Konferencja odbędzie się 6 kwietnia 2022r. i rozpocznie się o godzinie 10:00 w Auli Politechniki Rzeszowskiej (budynek V).

Istnieje również możliwość wzięcia udziału w formie zdalnej – na YT, Facebooku i stronie internetowej wydarzenia www.skni25.pl

Serdecznie zapraszamy studentów, pasjonatów i pracowników IT oraz wszystkich zainteresowanych. 🙂

WSTĘP CAŁKOWICIE DARMOWY, JEDNAK ILOŚĆ MIEJSC NA WYDARZENIE STACJONARNE OGRANICZONA! 🙂

Czekamy właśnie na Ciebie!

JObfuscator v1.09 – Obfuskator Java dla Androida

Wypuściłem właśnie małą aktualizację dla swojego obfuskatora dla języka Java – JObfuscator. Poprawka naprawia błąd w obsłudze adnotacji, który powodował problemy z szyfrowaniem stringów.

https://www.pelock.com/products/jobfuscator

Jeśli chcecie żeby wasz kod tak wyglądał i sprawiał nie lada uciechę każdemu kto rzuci się na waszą aplikację na Androida z dekompilatorem, polecam swój produkt.

Kod Java po obfuskacji obfuscatorem JObfuscator dla Android i Android Studio.

Autodata CDA3 i błąd “is not a valid date”

Cześć, jeśli mieliście kiedykolwiek problemy z popularnym oprogramowaniem w świecie motoryzacyjnym Autodata CDA3 i komunikatem:

“xxxxxx” is not a valid date

Zwykle na ten problem wystarczyła prosta zmiana formatu daty w ustawieniach systemowych. Jednak w zależności od wersji systemu Windows, jeśli to NIE POMAGA – mamy dla was rozwiązanie, dzięki któremu będziecie mogli korzystać z Autodaty nawet na najnowszych wersjach systemu Windows.

Błąd wygląda najczęściej tak:

Autodata CDA3 i błąd "is not a valid date"
Autodata CDA3 i błąd “is not a valid date”

Nasze rozwiązanie wymagało modyfikacji w kodzie aplikacji, który został po prostu źle zaprogramowany.

Jak wypromować swój projekt NFT?

Dzięki uprzejmości ViralKingdom powstał filmik prezentujący możliwości mojego małego bota automatyzującego dla portali społecznościowych Social Media Bot w odniesieniu do promocji projektów NFT.

Jako, że temat NFT jest obecnie jednym z najgorętszych w social media, warto zapoznać się z samym tematem NFT, gigantycznymi sumami, za które sprzedawane są NFT oraz metodami ich promocji.

Polecam poczytać i pośmiać się z takich tematów w odniesieniu do NFT jak “right-clicker mentality”

https://www.vice.com/en/article/5dgzed/what-the-hell-is-right-clicker-mentality

Right-clicker mentality

https://futurism.com/person-furious-right-click-saved-precious-nft

Obraz Right-clicker mentality

W ciekawych czasach przyszło nam żyć 🙂