Cache-Control: no-cache, no-store, max-age=0, must-revalidate Pragma: no-cache Expires: 0 X-Content-Type-Options: nosniff Strict-Transport-Security: max-age=31536000 ; includeSubDomains X-Frame-Options: DENY X-XSS-Protection: 1; mode=block
Autor: jornathan
HTTP Content Security Policy
Nagłówek odpowiedzi. Serwer informuje przeglądarkę które skrypty z jego domeny mogą być dołączone
Content-Security-Policy: <policy-directive>; <policy-directive<
// header Content-Security-Policy: default-src https: Content-Security-Policy: default-src https: 'unsafe-eval' 'unsafe-inline'; object-src 'none' // meta tag <meta http-equiv="Content-Security-Policy" content="default-src https:">
Dyrektywy:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
nmap
Inwentaryzacja IP – sprawdzenie listy hostów
# nmap -sP -oA 20171219_host_scan
Skanowanie portów
# nmap -iL lista-ip.txt -sS -sV --version-all -r -T4
--webxml -oA 20191220_port_scan
Uruchomienie skryptów
# nmap -iL lista-ip.txt -Pn -A -T4 -v --script all
-oN 20180110_script_scan
SKRYPTY – opcje
# nmap -sC <- domyślna lista skrtypów # nmap -A <- dodane do agresywnego skanowania # nmap --script [KATEGORIA | all] # nmap --script [KATEGORIA] --script-args [ARGS] --script-args-file [OPTION] # nmap -sn -sC <- skrypty bez skanowania portów # nmap -sn -Pn -sC <- bez portów i bez hostów
Kategorie skryptów
auth <- autoryzacja broadcast <- host discovery, nie uzgl. na liście brute <- atak brute force na autentykację default <- -sC lub -A lub --script=default discovery <- większa analiza sieci: snmp, http, smb dos <- atak dos, może uszk. system exploit <- próba włamania externalt <- łączy się z innymi serwisami np. whois fuzzer <- wysyła śmieci, długotrwały, duże obciążenie sieci intrusive <- duże ryzyko awarii systemu malware <- testują czy system zarażony malwarem lub backdorem safe <- bez awarii, włamań, dużego obciążenia version <- włączane tylko jako opcje -sV vuln <- sprawdzają znane podatności, tylko raportują
Wyszukiwanie zaawansowane
Dyrektywy wyszukiwarki:
site: intext: ext: inurl: intitle:
Przykłady użycia
site:net site:www.firma.com intext:"SELECT" ext:pdf ext:jpg inurl:admin intitle:nazwa_firmy
backup.sql intext:"SELECT" ext:sql site:net
mod_rewrite
Włączenie modułu mod_rewrite
# a2enmod rewrite # systemctl restart apache2
# editor /etc/apache2/apache2.conf
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Lub
<VirtualHost *:80>
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
. . .
</VirtualHost>
Uprawnienia, użytkownik
GRANT SELECT,INSERT,UPDATE,DELETE ON intranet.* TO 'intranet'@'localhost' IDENTIFIED BY 'secret';
SHOW GRANTS FOR 'intranet'@'localhost';
mysql_secure_installation
zabezpieczenie mariaDB po instalacji
CSS3 background
Ciemny gradient:
background-image: linear-gradient(to bottom,#3c3c3c 0,#222 100%);
sql – update z podzapytaniem
Tabela łącząca posiada wpisy powiązane z usuniętymi rekordami suits. Dla tych rekordów zerujemy klucz obcy.
UPDATE ingredients_suits si SET suit_id = 0 WHERE NOT EXISTS (
SELECT id FROM suits s WHERE s.id = si.suit_id
);
Można skasować rekordy tabeli łączącej które mają wyzerowany klucz obcy
DELETE FROM ingredients_suits WHERE suit_id=0;
MySQL – MATCH() AGAINST()
Wyszukiwanie tekstu w wielu polach tabeli
WHERE MATCH (title, body) AGAINST ('any text');
C# – manuals
Apache – cmd
how-to-create-a-ssl-certificate-on-apache-for-debian-8
Lista modułów, włączenie, wyłączenie
# a2enmod ssl # a2dismod ssl
Restart serwera
# service apache2 restart # systemctl restart apache2 # /etc/init.d/apache2 restart
Apache – włączenie ssl
Zakładając istnienie openSSL
# apt-get upgrade openssl
# a2enmod ssl ----------------- Considering dependency setenvif for ssl: Module setenvif already enabled Considering dependency mime for ssl: Module mime already enabled Considering dependency socache_shmcb for ssl: Enabling module socache_shmcb. Enabling module ssl. See /usr/share/doc/apache2/README.Debian.gz on how to configure SSL and create self-signed certificates. To activate the new configuration, you need to run: systemctl restart apache2
# a2ensite default-ssl ----------------- Enabling site default-ssl. To activate the new configuration, you need to run: systemctl reload apache2
# service apache2 reload
Windows – hosts
Uruchom Notepad jako administrator i wczytaj plik:
C:\Windows\System32\drivers\etc\hosts
Debian – releases
Nazwy kodowe i wersje
Debian "buster" - następna
Debian 9 ("stretch") — current stable release
Debian 8 ("jessie") — obsolete stable release
Debian 7 ("wheezy") — obsolete stable release
Debian 6.0 ("squeeze") — obsolete stable release
Debian GNU/Linux 5.0 ("lenny") — obsolete stable release
Sprawdzenie nazwy
uname -a Linux bora 4.9.0-3-686-pae #1 SMP Debian 4.9.30-2+deb9u3 (2017-08-06) i686 GNU/Linux
MySQL – install, config – linux
# apt-get install mysql-server
Konfiguracja poinstalacyjna np. ustawienie haseł
# mysql_secure_installation
# mysql -u root -p
Utworzenie bazy danych, użytkownika i uprawnienia
> create database testdb; > create user 'tester'@'localhost' identified by 'mypass'; > grant all on testdb.* to 'tester';
Utworzenie usera w czasie przydzielania uprawnień
> grant all on testdb.* to 'testuser' identified by 'mypassword';
Sprawdzenie uprawnień
> show grants for testuser;
MySQL – extract()
Zwraca składnik z daty np. rok
SELECT EXTRACT( MONTH FROM "2017-06-15" );
Bootstrap 4 – display
Wymuszenie https://
Plik .htaccess
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Dane Strukturalne
Bootstrap 4 – flex
Bootstrap 4 – margins
.no-gutters - usuwa margin i padding z kolumn
.mt-0 - margin-top: 0; .mr-3 .ml-3 .mb-1 .my-4 .pr-3
Bootstrap 4 – .hidden
xs: < 544px sm: 544-768px md: 768-992px lg: 992-1200px xl: >= 1200px
.hidden-xs-down .hidden-md-down .hidden-lg-down .hidden-xl-down .hidden-xs-up .hidden-sm-up .hidden-md-up .hidden-lg-up .hidden-xl-up
.visible-print-block .visible-print-inline .visible-print-inline-block .hidden-print
https://v4-alpha.getbootstrap.com/layout/responsive-utilities/
Ajax Headers
Typowy Request jQuery Ajax
var url = '/controller/action.json'
var data_obj = {
ulica : 'Marszałkowska',
miasto : 'Warszawa'
};
data = JSON.stringify( data_obj );
$.ajax({
type : 'post',
dataType : 'json',
data : data,
url : url,
success : function(response) {
renderResult(response);
},
error : function(e) { alert( e.message ); }
});
Ustawianie nagłówków dla Request
$.ajax({
beforeSend : function(xhr) {
xhr.setRequestHeader('X-Test-Hdr', 'Test');
},
headers: {
'header1': 'value1',
'header2': 'value2'
},
contentType: 'application/json; charset=utf-8',
});
Domyślny nagłówek dla żądań AJAX
X-Requested-With: XMLHttpRequest
xhrobj.setRequestHeader("X-Requested-With", "XMLHttpRequest");
SQL Update INNER JOIN
MySQL DATE_FORMAT()
DATE_FORMAT("2017-06-15", "%Y")
MySQL Adddate()
Zwraca nową datę po dodaniu odcinka czasu
ADDDATE( date, INTERVAL expr unit) ); ADDDATE( expr, days) );
Dodaje 10 dni do podanej daty (pierwszy argument)
SELECT ADDDATE( '2010-02-15', INTERVAL 10 DAY ) AS new_date; new_date -------------- 2010-02-25
MySQL Datediff()
Zwraca ilość dni pomiędzy dwoma datami lub znacznikami czasu
DATEDIFF( expr1, expr2 );
SELECT DATEDIFF( '2008-05-17 11:31:31','2008-04-28' ) ;
+----------------------------------------------+
| DATEDIFF('2008-05-17 11:31:31','2008-04-28') |
+----------------------------------------------+
| 19 |
+----------------------------------------------+
MySQL Coalesce()
Zwraca pierwszą wartość (z listy argumentów) niebędącą NULL lub NULL (jeśli takiej nie ma)
COALESCE( value1, value2, value3, ...)
Zwraca imię oraz pierwszy z maili – argumentami są nazwy kolumn
SELECT name, COALESCE( email_company, email_private, email_social) FROM users;
Linux Debian – zmiana daty
Odczyt z biosu – czas hardware’owy
# hwclock -r
Ustawienie nowej wartości
# hwclock --set --date="2017-08-02 12:19"
Przepisanie czasu hw do czasu systemowego
# hwclock -s
Sprawdzenie daty systemowej
# date śro, 2 sie 2017, 12:19:29 CEST