# certbot certonly --webroot -w /var/www/html/MYAPP/webroot -d MYDOMAIN.pl # certbot renew # certbot delete -d domena.pl
MySQL – daty
Porównywanie dat
SELECT * FROM president WHERE birth >= '1970-01-01' AND birth < '1980-01-01';
MySQL – order, format
Losowy rekord
# SELECT * FROM president ORDER BY RAND() LIMIT 1;
Zmiana domyślnej kolejności sortowania kolumny NULL
# SELECT * FROM president ORDER BY IF(death IS NULL, 0, 1), death DESC, last_name;
Oblicza pierwiastek kwadratowy i podaje wynik z 3 cyframi po przecinku
# SELECT FORMAT( SQRT(25), 3);
webhhtrack
webhhtrack – linuxowy frontend do – httrack i htsserver
CURL
https://curl.haxx.se/docs/manpage.html
Podstawowe użycie – pobiera stronę
# curl https://example.com
datetimepicker
https://xdsoft.net/jqplugins/datetimepicker/ – pobrać nowe
Wgranie plików na serwer:
/webroot/css/jquery.datetimepicker.css /webroot/lib/jquery.datetimepicker.full.min.js
templates/layout/default.ctp
head <link rel="stylesheet" href="/css/jquery.datetimepicker.css"> footer <?= $this->Html->script('/lib/jquery.datetimepicker.full.min.js') ?>
dołączyć plik inicjalizujący np. common.js
jQuery.datetimepicker.setLocale('pl'); jQuery(".datetimepicker").datetimepicker({ format:'Y-m-d', timepicker:false, mouseWheel: false, dayOfWeekStart : 1, // poniedziałek scrollMonth : false, // nie przewija myszą miesięcy scrollInput : false, // nie przewija nic i18n:{ pl:{ months:[ 'Styczeń','Luty','Marzec','wiecień', 'Maj','Czerwiec','Lipiec','Sierpień', 'Wrzesień','Październik','Listopad','Grudzień', ], dayOfWeek:[ "Nie", "Pon", "Wto", "Śr", "Czw", "Pt", "Sob", ] } } });
Użycie w szablonie:
<?= $this->Form->text('purchase_date', [ 'class' => 'form-control w-25 datetimepicker', 'default' => (new \DateTime())->format('Y-m-d') ]) ?>
Proffer Upload files – cakePHP 3
Szczegóły pluginu
# composer require 'davidyell/proffer:^1.0'
cakephp – select
Wszytkie pola poza 'published’
# $query->selectAllExcept( $articlesTable, ['published']);
Stos wywioań: alias / funkcja – pozostałe pola
# $query ->select(['slug' => $query->func()->concat(['title' => 'identifier', '-', 'id' => 'identifier'])]) ->select($articlesTable); // Select all fields from articles
cakephp – CSV export
Plugin CSV
https://packagist.org/packages/friendsofcake/cakephp-csvview
# composer require friendsofcake/cakephp-csvview # bin/cake plugin load CsvView
php7.3 nowy singing key
Instalacja
# wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
windows10 – nessus compliance test
Nazwa domeny
# systeminfo | findstr /B /C:"Domain" Domain: WORKGROUP
cakephp 3 Formhelper – zmienne
Dodawanie zmiennych do szablonu
$this->Form->setTemplates([ 'inputContainer' => '<div class="input {{type}}{{required}}"> {{content}} <span class="help">{{help}}</span></div>' ]);
cakephp 3 Form templates – bootstrap
Załadowanie szablonu config/bootstrap_templ.php
// In a View class $this->loadHelper('Form', [ 'templates' => 'bootstrap_temp.' ]);
cakephp 3 Form templates
Definicja szablonu w pliku config/app_form.php
// config/app_form.php return [ 'inputContainer' => '<div class="form-control">{{content}}</div>', ];
cakephp – Paginator
UsersController
postfix – php mail (smtputf8)
Przy wysyłaniu maila z poziomu PHP niektóre serwery nie obsługują smtputf8.
# tailf /var/log/mail.log Mar 7 11:22:31 mail postfix/smtp[22107]: 6CF0BA105E: to=<biuro@topdieta.pl>, relay=topdieta.pl[85.128.156.6]:25, delay=0.27, delays=0.04/0.02/0.2/0, dsn=5.6.7, status=bounced (SMTPUTF8 is required, but was not offered by host topdieta.pl[85.128.156.6])
Aby wyłączyć wsparcie należy:
# apt install libicu-dev
# postconf "smtputf8_enable = no"
# posfix reload
openssl – server req + podpis CA
Utworzenie requestu serwera (bez hasła dla klucza)
# openssl req -config openssl-server.cnf -newkey rsa:2048 -sha256 -nodes -out /etc/ssl/requests/h25.csr -keyout /etc/ssl/private/h25.pem -outform PEM
openssl – plik konfiguracyjny serwera openssl-server.cnf
# nano /etc/ssl/openssl-server.cnf
Czytaj dalej openssl – plik konfiguracyjny serwera openssl-server.cnf
openssl – certyfikat serwera self-signed – bez CA
Nowy certyfikat serwera: bez CA – na 3 lata – bez zaszyfrowanego klucza
# openssl req -newkey -x509 -nodes rsa:4096 -days 1089 -keyout /etc/ssl/private/serverkey.pem -out /etc/ssl/newcerts/servercert.pem
Weryfikacja
# openssl x509 -purpose -in /etc/ssl/newcerts/servercert.pem
Czytaj dalej openssl – certyfikat serwera self-signed – bez CA
openssl – plik konfiguracyjny CA – openssl-ca.cnf
Google API
openssl – utworzenie CA, i certyfikatu serwera
Utworzenie CA i certyfikat serwera
Postfix – TLS
TLS jest domyślnie wyłączony, aby go włączyć w pliku
/etc/postfix/main.cf: smtpd_tls_security_level = may - serwer ogłasza obsługę STARTTLS klientom SMTP, nie wymusza szyfrowania smtpd_tls_security_level = encrypt - wymusza szyfrowanie TLS (NIE STOSOWAĆ)
Włącza szyfrowanie na porcie 465 (smtps) – odkomentować opcje:
/etc/postfix/master.cf: # zakomentować opcję - wyłącza port 25 #smtp inet n - y - - smtpd # odkomentować opcje - włącza 465 smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Błędy – szablony
Pliki i style do korekty:
Postfix – SASL
SASL – autoryzacja zewnętrznych klientów
https://www.postfix.org/SASL_README.html
Czytaj dalej Postfix – SASL
openssl – ciphers
# openssl ciphers -v
TLS_AES_256_GCM_SHA384 TLSv1.3 Kx=any Au=any Enc=AESGCM(256) Mac=AEAD
TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any Au=any Enc=CHACHA20/POLY1305(256) Mac=AEAD
....
cakephp 3 – weak password
Jeśli baza haseł pochodzi z zewnętrznej aplikacji i jest skrótem sha1 to aby Cake skutecznie użył Fallback’u – trzeba wyłączyć sól.
Cake/Auth/WeakPasswordHasher.php
public function hash($password)
{
return Security::hash($password, $this->_config['hashType'], true);
}
true zamienić na false - nie będzie używał Security::salt
https://api.cakephp.org/3.0/source-class-Cake.Auth.WeakPasswordHasher.html#21-72
Postfix – main.cf – podstawowa konfiguracja
# postconf mail_version - wersja systemu mail_version = 3.1.9 # nano /etc/postfix/main.cf # postconf -e 'smtpd_sasl_path = private/auth' # postconf -n # postfix reload lub # systemctl restart postfix # systemctl status postfix # netstat -tlpn # tailf /var/log/mail.log
LetsEncrypt – usage
/etc/apache2/sites-available/000-default.conf
<VirtualHost 156.111.131.212:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/h25
ServerName h25.pl
</VirtualHost>
# certbot certonly --webroot -w /var/www/html/h25 -d h25.pl
/etc/letsencrypt/live/h25.pl/fullchain.pem
/etc/letsencrypt/live/h25.pl/privkey.pem
# certbot renew
cake DebugKit
Application.php : bootstrap()
if ( Configure::read('debug') ) {
Configure::write('DebugKit.forceEnable', true);
$this->addPlugin(\DebugKit\Plugin::class);
}