btz blogbejegyzései

[ Új blogbejegyzés ]

  • IP camera viewer PHP script

    Készítettem egy PHP alapú alkalmazást, amivel IP kamerák által FTP-n feltöltött képeket lehet kilistázni generált, User/Password védett weboldalon.

    Keresgéltem a neten olyan PHP script után, amit feltölthetek webtárhelyre és az IP kamerák statikus JPG formátumban feltöltött képeit egy generált weboldalon kilistáztathatom és Felhasználónév / Jelszó birtokában megnézhetek, akár mobilon is, anélkül, hogy le kelljen azokat FTP-vel töltenem a szerverről.
    Nem találtam egy normális scriptet sem, így nekiálltam szerény PHP tudásommal "összeeszkábálni" egyet. Tudom 90-es évekbeli design és spagetti PHP kód, de a funkcionalitását betölti úgy ahogy az nekem megfelelő.
    Abban a reményben mutatom be nektek, hátha egy (vagy akár több) hozzáértőbb PHP fejlesztő forkolja és tovább fejleszti. Nekem is vannak még ötleteim a továbbfejlesztésre, de sok időm nincs rá, de azért szép lassan haladok vele. Viszont egy több fejlesztő által reszelt kód gyorsabban fejlődne.

    Folytatás...

    Blogbejegyzés 4 éve 4

  • PHPPOT User Login működése

    Egy egyszerű PHP alapú felhasználó beléptetőrendszer file-jainak elemzése. Főleg magam részére, de publikusan, hátha másnak is hasznos lesz ez a leírás, esetleg ez alapján jobban megérti, hogyan is működik egy ilyen beléptető rendszer. Egyszerűsége végett könnyű megérteni a működését kezdő PHP-vel ismerkedők számára is.

    1. /view/login-form.php
    <html>
    <head>
    <title>User Login</title>
    <link href="./view/css/style.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
    <div>
    <form action="login-action.php" method="post" id="frmLogin" onSubmit="return validate();">
    <div class="demo-table">

    <div class="form-head">Login</div>
    <?php
    if(isset($_SESSION["errorMessage"])) {
    ?>
    <div class="error-message"><?php echo $_SESSION["errorMessage"]; ?></div>
    <?php
    unset($_SESSION["errorMessage"]);
    }
    ?>
    <div class="field-column">
    <div>

    Folytatás...

    Blogbejegyzés 4 éve 3

  • Be akarnak perelni egy kép oldalba ágyazása miatt

    Jó reggelt! Itt a friss kávé 🍵!

    Ja? Nem. Ez a kávé igazából itt sincs! Gondoltad volna? Ugyanis ez a kávé a Prohardverre a Wikipédia szerveréről hosztolódik ide. A Wikipedia szerverén található maga a képfájl, én csak egy html kóddal (IMG) illesztettem be ide, így a kép beágyazott módon itt is megjelenik. Akárcsak mintha itt lenne. De nincs itt. Csak illúzió, hogy itt van.
    Mi lenne, ha most a kép készítője ide jönne fenyegetőzni, hogy azonnal szedjem le, mert beperel engem és a Prohardvert is, mert ez a kép ide egy HTML kód segítségével megjelenítésre kerül, anélkül, hogy magát a képfájlt lemásoltam vagy sokszoroztam volna.
    Mégis megtörtént a nonszensz! Nem a kávéval, hanem egy másik képpel, de ez a lényegen nem változtat. Bírósági eljárással fenyeget a kép szerzője. Miután vázoltam neki, hogy én az adott képet nem másoltam, nem szerkesztettem, nem vagyok semmilyen jogsértés elkövetője, forduljon a képet hosztoló és eredetileg tárhelyén tároló weboldal tulajdonosához, hosting szolgáltatójához. Erre fel mindenféle technohalandzsa előadása mellett (Például hogy valami login oldal rögzítette az IP-m és meg van neki. Fogalmam sincs amúgy, hogy miről beszél. Nem jártam semmilyen login oldalon) előadta, hogy én már pedig tolvaj vagyok, mert az otthagyott kocsit sem viszik el az útszéléről. (Há Nórmális? Margit!

    Folytatás...

    Blogbejegyzés 4 éve 40

  • JQuery tartalom refresher reloader

    JQuery alapú div content refresh.
    A kód a "here" ID-vel ellátott div tartalmát frissíti (ha van a fájlban változás) a click linkre kattintva, az egész oldal frissítése nélkül.

    <html>
    <head>
    <!-- JQ CDN -->
    <script src="https://code.jquery.com/jquery-3.4.1.js" integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU=" crossorigin="anonymous"></script>
    </head>
    <body>


    <div id="here">
    1111111111111111111111111111

    </div>
    0<br />
    <a href="javascript:void(0);" id="refresh">click</a>

    <script>
    $(function() {
    $("#refresh").click(function() {
    $( "#here" ).load(window.location.href + " #here" )

    })
    });

    </script>

    </body>
    </html>

    Blogbejegyzés 4 éve 0

  • Wordpress current user registration date

    Ez a kód kiírja az aktuálisan belépett user regisztrációjának idejét.

    <?php
    $user_info = wp_get_current_user(); // Get logged in user info
    $registered = $user_info->user_registered;

    echo $registered;
    ?>

    Blogbejegyzés 4 éve 4

  • Wordpress current user post count

    Ez megjeleníti az aktuális user bejegyzéseinek számát, ott ahová ez beszúrásra került a sablonba.
    Képes kiszűrni, hogy vendégfelhasználó e az illető. Neki nem jelenít meg semmit.
    $current_user változónak egy User ID-t is megadhatunk. Ilyenkor ez a lekérés mindenkinek ugyanazon user össz bejegyzés számát mutatja meg.

    <?php
    $current_user = wp_get_current_user();
    if ( 0 == $current_user->ID ) {
    // Not logged in.
    } else {
    echo count_user_posts( $current_user->ID );
    }
    ?>

    Blogbejegyzés 4 éve 0

  • PHPBB 3.2.5 kiterjesztés és alap fájl módosítás napló

    Itt vezetem publikusan a PHPBB fórumrendszerben és az ahhoz kapcsolódó kiterjesztésbeekben történt alap beállításoktól eltérő változtatásaimat, hogy a későbbiekben is meglegyen, illetve hogy másoknak is hasznára lehessen.

    Verziószám : 3.2.5
    /phpbb = A phpbb gyökérkönyvtárát fogja jelölni

    1. Privát üzenet értesítés default ON az újonnan regisztrálóknak:

    /phpbb/includes/functions_user.php 364. sor csere erre:
    if ($notifications_data === null)
    {
    $notifications_data = array(
    array(
    'item_type' => 'notification.type.post',
    'method' => 'notification.method.email',
    ),
    array(
    'item_type' => 'notification.type.topic',
    'method' => 'notification.method.email',
    ),
    array(
    'item_type' => 'notification.type.pm',
    'method' => 'notification.method.email',
    ),
    );
    }

    Bővebben ebben az írásban....

    Folytatás...

    Blogbejegyzés 4 éve 2

  • HTACCESS 301 ALL REDIRECT

    Ezt a kódot egy .htaccess fájlba bemásolva és feltöltve a weboldal gyökérkönyvtárába a teljes oldal átirányítható egy új domainre, úgy hogy az a linkeket is követi. Pl. regidomain.com/oldal.html ---> ujoldal.com/oldal.htm stb stb

    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^(.*)$ https://peldadomain.com/$1 [R=301,L]
    </IfModule>

    Blogbejegyzés 4 éve 0

  • Dovecot frissítés utáni ssl hiba

    Debian 9-ről, Debian 10-re történő váltás esetén az alábbi és ehhez hasonló hibaüzenetek kezdenek el gyűlni a mail.err logfájlban
    dovecot[9278]: imap-login: Error: Failed to initialize SSL server context: Can't load DH parameters: error:1408518A:SSL routines:ssl3_ctx_ctrl:dh key too small: user=<>, rip=xxx, lip=xxx, session=<45XeyQGEZOzOSmkw>

    A megoldás egy egyszerű sor beszúrása a dovecot.conf fájlba:
    ssl_dh = </usr/share/dovecot/dh.pem

    Blogbejegyzés 5 éve 1

  • Amavis D Controll [notes]

    Add file:
    /etc/amavis/conf.d/90-custom

    with this content:

    Code:
    use strict;

    #
    # Place your configuration directives here. They will override those in
    # earlier files.
    #
    # See /usr/share/doc/amavisd-new/ for documentation and examples of
    # the directives you can use in this file
    #

    $max_servers = 1;

    #------------ Do not modify anything below this line -------------
    1; # insure a defined return
    and then restart amavis.

    in postfix master.cf, change the line:

    amavis unix - - - - 2 smtp

    to:

    amavis unix - - - - 1 smtp

    and restart postfix.

    Blogbejegyzés 5 éve 0

  • A kuki létezésének ellenőrzése Javascriptel!

    Jegyzet:
    Ezzel a kis kóddal ellenőrizhető, hogy létezik e a cookie vagy sem. És egy if - else elágazással különböző dolgokat írhatunk ki.

    <script type="text/javascript">

    // vegyük ki a // jelet az 1. elől, ha azt szeretnénk, hogy a kuki létezzen, a 2. elől, ha azt szeretnénk, hogy ne létezzen. Ha mindkettő elé rakunk, akkor nem fog létezni.
    document.cookie = "tesztkuki=Létezik";
    // document.cookie = "tesztkuki=Már nem létezik; expires=Thu, 18 Dec 2013 12:00:00 UTC";


    // Confirm that cookie does not exist
    if (document.cookie.indexOf('tesztkuki') == -1 ) {
    document.write("NEM LÉTEZIK A KUKI !");
    } else {
    document.write("LÉTEZIK A KUKI !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    }
    </script>

    Kipróbálás >>>>>

    Blogbejegyzés 5 éve 10

  • Tartalom figyelmeztető Javascript popup dokumentációja

    Javascript popupot kellett készíteni egy felnőtt tartalmú oldalhoz.
    Elvárások voltak, hogy ugorjon fel a popup, ha a felhasználó még nem fogadta el, hogy mindenféleképp látni akarja a tartalmat, ha nem akarja látni, akkor a "NEM" link megnyomásaval irányítson el az oldalról, mondjuk a Minimax oldalára, de ha vissza látogat, akkor újra dobja fel neki a popupot, egészen addig, amíg ki nem nyílvánítja az "IGEN" linkel a tartalom megtekintési szándékát.

    A popup megjelenítéséhez az alábbi (popup.php) javascript popupot használtam. Igen, PHP a kiterjesztés, mert az éles verzióban php kódok is lesznek, a prototípusban csak html és javascript van.
    Eredetileg nem volt meg benne a lehetőség, hogy megadjuk a választási lehetőséget a felhasználónak az IGEN / NEM választásra, mivel ez egy reklám popup volt, kiskorában :D Így erre nem is volt szükség, csak a popup bezáró gombra. A cookie létrejött a popup.php fájlban megadott lejárati dátummal az oldal betöltésekor, amit szabályozni lehettett script oldalon.

    Folytatás...

    Blogbejegyzés 5 éve 0

  • Postfix-SASL Fail2Ban jegyzet

    /etc/fail2ban/filter.d/postfix-sasl.conf
    # Fail2Ban filter for postfix authentication failures
    #

    [INCLUDES]

    before = common.conf

    [Definition]

    _daemon = postfix(-\w+)?/(?:submission/|smtps/)?smtp[ds]

    failregex = ^%(__prefix_line)swarning: [-._\w]+\[<HOST>\]: SASL ((?i)LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(:[ A-Za-z0-9+/:]*={0,2})?\s*$

    ignoreregex = authentication failed: Connection lost to authentication server$

    [Init]

    journalmatch = _SYSTEMD_UNIT=postfix.service


    # Author: Yaroslav Halchenko

    /etc/fail2ban/jail.local
    ...
    [postfix-sasl]
    enabled = true
    port = smtp
    filter = postfix-sasl
    logpath = /var/log/mail.log
    maxretry = 3 #Max 3 próbálkozás
    bantime = 7200 #Másodperc alapú tiltás
    ...

    /etc/fail2ban/jail.conf

    ...
    [postfix-sasl]

    filter = postfix[mode=auth]
    port = smtp,465,submission,imap,imaps,pop3,pop3s
    # You might consider monitoring /var/log/mail.warn instead if you are
    # running postfix since it would provide the same log lines at the
    # "warn" level but overall at the smaller filesize.
    logpath = %(postfix_log)s
    backend = %(postfix_backend)s
    ...

    Folytatás...

    Blogbejegyzés 5 éve 0

  • A Munin rendszer monitorozó telepítése és használata mysql-el

    A rendszerem Debian 9, erre telepítettem fel a Munin rendszermonitorozó rendszert.

    Terminálban adjuk ki a következő parancsokat, feltételezve hogy a szükésges függőségek már telepítve vannak (Pl egy Apache2 webszerver)
    apt-get update
    apt-get upgrade
    apt-get install munin munin-node munin-plugins-extra

    A MySQL-hez:
    cd /etc/munin/plugins
    ln -s /usr/share/munin/plugins/mysql_ mysql_
    ln -s /usr/share/munin/plugins/mysql_bytes mysql_bytes
    ln -s /usr/share/munin/plugins/mysql_innodb mysql_innodb
    ln -s /usr/share/munin/plugins/mysql_isam_space_ mysql_isam_space_
    ln -s /usr/share/munin/plugins/mysql_queries mysql_queries
    ln -s /usr/share/munin/plugins/mysql_slowqueries mysql_slowqueries
    ln -s /usr/share/munin/plugins/mysql_threads mysql_threads

    Sajnos ezzel még mindig nem fog működni a MySQL monitorozása. Módosítanunk kell az /etc/munin/plugin-conf.d/munin-node féjlt.
    Keressük meg a [mysql*] részt és írjuk át erre:
    [mysql*]
    user root
    group wheel
    env.mysqladmin /usr/bin/mysqladmin
    env.mysqlopts -u munin -pp4ssw0rd

    Természetesen ehhez létre kell hozni a munin usert egy jelszóval.

    munin-run mysql_queries terminál parancsal ellenőrizhetjük, hogy sikerült e a fenti beállítás. Ha kiírja a select, insert, update, replace értékeket, akkor működik.

    Folytatás...

    Blogbejegyzés 5 éve 0

  • SSH meghajtó mount

    SSH-n elérhető szerver lemezének felcsatolása a másik szerver fájlrendszerére

    A szükséges csomag installálása:
    apt-get install sshfs
    Letölti mellé mág a fuse csomagot is.
    (Én Debiant használok, más rendszereken lehet yum parancsal)

    Készítsünk egy fuse csoportot
    groupadd fuse
    usermod -a -G fuse user

    Csatolási hely létrehozása:
    cd /
    cd mnt
    mkdir helyimappa <=== Ez bármi lehet, csak arra kell figyelni, hogy a következő parancsnál ezt adjuk meg

    Csatolás
    sshfs -o allow_other,default_permissions,port=PORTSZÁM root@SZERVERIP VAGY DOMAIN:/Tavolimappa /mnt/helyimappa

    Portszám csak akkor kell, ha eltér a default 22-es porttól.
    A távoli mappa helyére természetesen azt a mappát kell írni, amit meghajtóként szeretnénk csatolni.
    Root helyére is írhatunk más felhasználót, ha nem rendszergazda nevében akarunk belépni.

    Ez csak egy rövid leírás, főleg magamnak, hogy később is meglegyen, akit részletesebben is érdekel, az kövesse a lenti linket.

    Bővebb angolnyelvű leírás ....

    Blogbejegyzés 5 éve 2

  • Alapértelmezett IPTABLES tűzfalbeállításaim szerverhez WEBMIN panelen

    Ezt csak úgy magamnak, hogy később is meglegyen, ha új szervert telepítek.

    Kifelé bármi mehet, befelé csak a 10001-n megy az SSH és a WEBMIN a 10002-esen, illetve a stabil és meglévő kapcsolatok, az ICMP protokollhasználat és a lo interface dolgai.

    Kommentben leírhatjátok, hogy ki milyen tűzfalszabályokat használ a szükséges portokon kívül.

    Blogbejegyzés 5 éve 2

  • CWP (Cent OS Web Panel) Let's Encrypt telepítése után nem indul

    Nem indul a CWP panel Let's Encript telepítése után probléma

    Kézzel próbáltam indítani:
    [root@SERVEREM ~]# systemctl start cwpsrv.service
    Job for cwpsrv.service failed because the control process exited with error code. See "systemctl status cwpsrv.service" and "journalctl -xe" for details.

    Hibát dob. Meg kellett keresni a napló állományt, ami a
    /usr/local/cwpsrv/logs/error_log címen található

    Ez ilyen hibákkal sírt:
    019/05/05 21:17:10 [emerg] 4223#0: SSL_CTX_use_PrivateKey("/etc/pki/tls/private/hostname.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)
    2019/05/05 21:17:15 [emerg] 4244#0: SSL_CTX_use_PrivateKey("/etc/pki/tls/private/hostname.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)
    2019/05/05 21:17:21 [emerg] 4247#0: SSL_CTX_use_PrivateKey("/etc/pki/tls/private/hostname.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)

    Megoldás:
    Terminálba kell generáltatni egy hostname kulcsot az alábbi parancsal
    /usr/local/cwpsrv/htdocs/resources/scripts/generate_hostname_ssl

    Folytatás...

    Blogbejegyzés 5 éve 0

  • ISPCONFIG 8080 felület használata Let's Encrypt-el

    Apache-hoz használt cert-ek átvétele az ISPCONFIG-hoz, hogy lehessen használni a 8080-as porton futó felületet https módban, anélkül, hogy megjelenne a tanusítvány elfogadás felugróablak a böngészőben.

    Ha már generáltunk az ISPCONFIG felületen Let's Encrypt kulcsot a hostname domainünkhöz vagy a szerverünkön létrehozott Apache2 virtuális hosthoz, akkor lehet ezt hasznáni .

    Terminál ablakban:

    cd /usr/local/ispconfig/interface/ssl/
    mv ispserver.crt ispserver.crt-$(date +"%y%m%d%H%M%S").bak
    mv ispserver.key ispserver.key-$(date +"%y%m%d%H%M%S").bak
    mv ispserver.pem ispserver.pem-$(date +"%y%m%d%H%M%S").bak
    ln -s /etc/letsencrypt/live/$(hostname -f)/fullchain.pem ispserver.crt
    ln -s /etc/letsencrypt/live/$(hostname -f)/privkey.pem ispserver.key
    cat ispserver.{key,crt} > ispserver.pem
    chmod 600 ispserver.pem

    $(hostname -f) = A hostnevet írja be de használhatunk helyette mást is, pl xy.mydomain.com vagy akármilyen domainünk van. Természetesen ha mást használunk, akkor azt kell behelyettesíteni a $(hostname -f) helyére.

    Video:

    Folytatás...

    Blogbejegyzés 5 éve 1