Forum programistyczne DevStart

Zapraszam wszystkich malkontentów programistycznych C++, starych wyjadaczy Haskella, młodych adeptów Rusta do spamowania na moim forum programistycznym DevStart.

PS. Masz bloga, nowego, starego i chcesz zarobić 250 PLN w BTC, ETH lub XMR? Podlinkuj forum DevStart (w sidebarze) z dokładnie takim kodem HTML i skontaktuj się ze mną po wypłatę. Easy money.

<a href="https://devstart.pl" title="Forum programistyczne DevStart">Forum programistyczne DevStart</a>

Nie chcesz zarobić? To nie zawracaj mi dupy 🙂

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

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.