SlideShare a Scribd company logo
1 of 50
Niedoszły Bibliotekarz
  przedstawia:


  Błędy userów,
       niedoróbki koderów


http://arek.bibliotekarz.com   WordCamp Gdaosk 2012
Pogadanka na licencji CC BY 3.0
• kopiowad, rozpowszechniad, odtwarzad i
  wykonywad utwór
• tworzyd utwory zależne
• użytkowad utwór w sposób komercyjny

      Ten utwór jest dostępny na licencji Creative Commons Uznanie autorstwa 3.0 Polska.




                  http://www.slideshare.net/bibliotekarz
Główne psuje Internetu

         • Użytkownicy
         • Wykonawcy


Strony problemu będą się przenikać bo zarówno
jedni i drudzy mogą w kilku przypadkach
zepsuć to samo, choć różnymi metodami.
User mode = ON
<H1> ma byd jeden </H1>
Dwa
       akapity
          z
vs.   MS Word
       Ponad
       130 kb
DSC000234481.jpg
Jak wyszukad fotkę po tagach
alt =‘’” title=‘’DSC0234481.jpg”


                                   Pamiętajcie
                                   co zawiera
                                   EXIF

                                   miniaturki,
                                   lokalizacja,
                                   data,
                                   godzina,
                                   …
Kasuj co zbędne
Strona jest dla gościa
Banner




 Banner
Trudnozmienialne URL-e


http://lukrecjusz.pl/kuchnia/opinie-recenzja/produkty/



              i wygodne menu
Rozbójnicy
Skórki
Wtyczki
Widgety
Dodatki
…
User mode = OFF
• Nie szaled z
  typografią, znacznikami, wtyczkami.
• Oszczędzad miejsce na istotne treści.
• Przemyśled dla kogo strona i jaka nawigacja.
• Nadawad zdjęciom i linkom sensowne nazwy.
• Konwertowad teksty i zdjęcia.
• Uważad przy osadzaniu obiektów od
  innych, darmowe wtyczki, skórki, widgety
  (zwłaszcza z szyfrowanym kodem).
Koder mode = ON
Przynajmniej jest
jeden krój fonta !




No     dobrze     trzy    kroje
 z obowiązkowym Comic Sans MS
Jednolitośd języka na stronie
- ‘’Twoją stronę odwiedziło
  143245 guest’’
- ‘’poruszyd świadome
  używanie Read more…’’
- ‘’Komentarze 01.01.1970
  title text Twój komentarz’’
- ‘’Strona: 1 2 3 4 5...
  Następna » Glos 0.7 uses
  technologies including
  PHP’’
Twórz nowe motywy lub potomne
/*
Theme Name: Klusek Twenty Eleven
Description: Motyw potomny Twenty Eleven
Author: Klusek
Template: twentyeleven
*/
Standardy



• Wykorzystanie zaleceo schema.org
• Zgodnośd z RFC
Skórkowtyczkom dziękujemy


Wspieramy 404,
mogą przekazad zdecydowanie większą
wartośd niż prosty komunikat o błędzie.
Wrócisz po roku do kodu a tam…
      <code>
           cimcia()
           dumcia()
           trololo()
      </code>
a przecież można było:
joeplugin_post_pretty_title()
Zadbaj o oczy i umysł ;)
// komentuj żeby było wiadomo co do czego
<użyj>
     <formatowania kodu>
     <to pomaga naprawdę>
</użyj>
Wujowo ale jednakowo
Wersja 3.2.8 | Autor: Arne Brachhold |
 Odwiedź witrynę wtyczki | Settings | FAQ |
 Support | Donate

Wersja 0.1 | Autor: Ivan Kazandzhiev |
 Odwiedź witrynę wtyczki
Ilośd dodatków w head
1 plik ładuje się szybciej
<link rel='stylesheet' id='helion-ksiegarnia-css'
   href='http://…pro/css/ksiegarnia.css?ver=3.4.2' type='text/css‘
   media='all' /> 1431b
<link rel='stylesheet' id='helion-shortcodes-css'
   href='http://…pro/css/shortcodes.css?ver=3.4.2' type='text/css‘
   media='all' /> 895b
<link rel='stylesheet' id='helion-widgets-css'
   href='http://…pro/css/widgets.css?ver=3.4.2' type='text/css‘
   media='all' /> 688b
<link rel='stylesheet' id='helion-wyszukiwarka-css'
   href='http://…pro/css/wyszukiwarka.css?ver=3.4.2'
   type='text/css' media='all' /> 192b

CSS Sprite
Struktura
Wtyczka
    |- [css]
    |- [img]
    |- [js]
formularze
Kontrola poprawności wprowadzonych danych
  ok, ale bez blokady wysyłania.
W przypadku nieprzewidzianych danych ujawnia
  się dodatkowe pole dla opisu.
Każde pole formularza jednoznacznie opisane,
  podpowiedź (najlepiej kontekstowa, nie
  wymagająca zmiany) w polu edycji.
Po co gromadzid informacje nieużywane?
Weryfikacja przyjmowanych danych i uprawnieo
Informacja zwrotna
www-data@helion.pl (www-data) napisał:
HELION SA, 44-100 Gliwice, ul. Ko ciuszki 1C
Numer KRS 0000121256 S d Rejonowy w
Gliwicach, X Wydzia Gospodarczy Krajowego
Rejestru S dowego.
NIP 631-020-02-68, REGON: 271070648
Kapita zak adowy: 500100 z w ca o ci wp
acony
Ludzie łatwo giną
Twoje zamówienie ma status ‘’W drodze”

•   Czeka na akceptację
•   Zaakceptowane
•   Pakowanie
•   Wysyłka
•   Kurier
•   Dostarczone
‘’drobiazgi’’

wp_remote_get () vs. Curl
Dodatkowe tabele
Wiele wpisów w tabeli wp_options zamiast
  utworzenia tablicy
Inicjacja wtyczki i jej usuwanie
Różne konfiguracje serwerów użytkownika
Czytaj ze zrozumieniem
<meta http-equiv="x-dns-prefetch-control"
 content="off"/>

Chromium watches for an HTTP header of the
  form "X-DNS-Prefetch-Control" (with a vcase
  insensitive)alue of either "on" or "off."
Weryfikuj informacje
Cudowny lek anonimizujący wordpresa
remove_action('wp_head', 'wp_generator');
a w rss nr wersji zostaje :/

BTW zwróciliście uwagę na
 http://lukrecjusz.pl/.../css/ksiegarnia.css?ver=3.4.2


Błędy w plikach z repozytorium wordpress.org
Nie pobierają
Wikingowie przy ognisku
          opowiadają:


Im więcej przeprowadzisz testów w różnych
  środowiskach tym mniej masz wrogów.
Koder mode = OFF

• Typografia i jednolitośd językowa
• Czytanie ze zrozumieniem
• Weryfikacja źródła ograniczone zaufanie
• Jakośd tworzonego kodu i dokumentacji
• Korzystanie z dobrych praktyk i
  utrzymywanie standardów
• Przyjaznośd dla użytkownika
admin1
Porażki
Wdrażanie zmian bez zweryfikowanego
  backupu
Porządek w kopiach zapasowych, domenach i
  serwerach
Kopia robocza / testowa dostępna dla
  wyszukiwarek
Pokora względem czasu i umiejętności
Najczęstsze źródła problemów

• <meta name="generator" content="WordPress
  .old" />
• admin1
• UPDATE wp_users
      SET user_status = '$ranga'
      WHERE ID = $id”;
• domena.tld/wp-content/uploads/2010/02/
Brak aktualizacji
<channel>
<title>Ministerstwo Administracji i Cyfryzacji</title>
<atom:link href="http://mac.gov.pl/feed/" rel="self" type="application/rss+xml" />
<link>http://mac.gov.pl</link>
<description>Ministerstwo Administracji i Cyfryzacji</description>
<lastBuildDate>Tue, 09 Oct 2012 13:19:09 +0000</lastBuildDate>
<...>
<generator>http://wordpress.org/?v=3.4.1</generator>
         <item>


<channel>
<title>Kominek IN</title>
<atom:link href="http://www.kominek.in/feed/" rel="self" type="application/rss+xml" />
<link>http://www.kominek.in</link>
<description>Lifestyle, Kominek, High life, Uczucia</description>
<...>
<generator>http://wordpress.org/?v=</generator>
         <item>
Słabe hasła i dostęp
mnemotechnika Taniecz**, KMorgan%40
głUkłÓbaBzakaRmaSdłUhaS5
głupia kłótliwa babo za karę masz długie
hasło x (gdzie x = ulubiony date +%w)
+cAw4l:p

ssh sftp
zapisane hasła strona trzasła
Polityka bezpieczeostwa
Jeden wordpress jedna baza danych
Każdy prefix do tabel unikalny
Standardowe ścieżki do wp-config.php czy
  użytków jak PhpMyAdmin zmienione
Wzbogacone .htaccess
Właściwe prawa dostępu do plików i katalogów
Options All -Indexes
Godziny pracy we wrześniu:

         16 - 0.30
         (coś niecoś poprawiła bo już nie ma
         widocznych godzin wgrania plików)

         16 - 0.30
         ale raz jakiś banner wrzucił o 8 rano


          11 - 14
.htaccess
ServerSignature Off

# ograniczamy limit uploadu do 10mb
LimitRequestBody 10240000

# obsługa typowych błędów
ErrorDocument 404 /404.php
ErrorDocument 403 "<html><head><title>O
   NO!</title></head><body><br /><br /><h2><tt>403 Chyba
   coś nie zadzialalo :(</tt></h2></body></html>’’
ErrorDocument 500 /error.php
Prosto z codex
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+.php$ - [F,L]
RewriteRule ^wp-
  includes/js/tinymce/langs/.+.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ -
  [F,L]
# wycinka komentarzy z kosmosu
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-
  post.php*
RewriteCond %{HTTP_REFERER} !.*twoja-dom.ena*
  [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$
  [R=301,L]
# wycina metodę TRACE
RewriteCond %{REQUEST_METHOD} ^TRAC(E|K)
RewriteRule .* - [F]
# wycinka hotlinkowania
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER}
  !^http://(www.)?twoja-dom.ena/.*$ [NC]
RewriteRule .(gif|jpg|swf|flv|png)$
  http://twój.obrazek.jpg [R=302,L]

# przekierowanie na subdomenę www
RewriteCond %{HTTP_HOST} ^twoja.tld$ [NC]
RewriteRule ^(.*)$ http://www.twoja.tld/$1 [R=301,L]
# blokujemy dostęp do plików
<FilesMatch
   ".(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$">
Order Allow,Deny
Deny from all
</FilesMatch>

<files ^wp-config.php$>
Order deny,allow
deny from all
</files>
# global
User-agent: *
                                 robots.txt
Disallow: /cgi-bin/
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/plugins/
Disallow: /wp-content/cache/
Disallow: /wp-content/themes/
Disallow: /trackback/
Disallow: /feed/
Disallow: /comments/
Disallow: /category/*/*
Disallow: */trackback/
Disallow: */feed/
Disallow: */comments/
Disallow: /*?
Allow: /wp-content/uploads/
Warto przejrzed
http://www.josiahcole.com/2007/07/11/almost-perfect-htaccess-file-for-wordpress-blogs/
http://codex.wordpress.org/Hardening_WordPress#Securing_wp-config.php
http://webhelp.pl/blog/jak-nie-pisac-wtyczek-i-szablonow-dla-wordpressa
http://blog.vokiel.com/css-minify-combine-zmniejszanie-laczenie-plikow-css-w-jeden
http://webfaces.pl/blog/wordpress-jako-cms-najczestsze-bledy-deweloperow
http://www.optart.pl/2011/12/wordcamp-2011
http://www.problogger.net/archives/2012/08/29/top-10-wordpress-security-myths
http://planetozh.com/blog/2009/09/top-10-most-common-coding-mistakes-in-wordpress-
    plugins/
http://perishablepress.com/5g-blacklist-2012/
Materiały użyte w przykładach
http://www.zombiesamurai.pl
http://wolnelektury.pl
http://mac.gov.pl
http://www.kominek.in
http://blog.kurasinski.com
http://hatalska.com
http://lukrecjusz.pl

More Related Content

What's hot

Optymalizacja aplikacji ASP.NET
Optymalizacja aplikacji ASP.NETOptymalizacja aplikacji ASP.NET
Optymalizacja aplikacji ASP.NETBartlomiej Zass
 
20 Joomlasztuczek, które mogą CI się przydać
20 Joomlasztuczek, które mogą CI się przydać20 Joomlasztuczek, które mogą CI się przydać
20 Joomlasztuczek, które mogą CI się przydaćWojciech Klocek
 
Wprowadzenie do WP-API
Wprowadzenie do WP-APIWprowadzenie do WP-API
Wprowadzenie do WP-APITomasz Dziuda
 
Hugo - make webdev fun again
Hugo - make webdev fun againHugo - make webdev fun again
Hugo - make webdev fun againMarcin Gajda
 
Statycznie czy dynamicznie?
Statycznie czy dynamicznie?Statycznie czy dynamicznie?
Statycznie czy dynamicznie?Tomasz Dziuda
 
Jak tworzyć motywy przyjazne użytkownikom i programistom - WordUp Silesia
Jak tworzyć motywy przyjazne użytkownikom i programistom - WordUp SilesiaJak tworzyć motywy przyjazne użytkownikom i programistom - WordUp Silesia
Jak tworzyć motywy przyjazne użytkownikom i programistom - WordUp SilesiaTomasz Dziuda
 
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistomWordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistomTomasz Dziuda
 
Electron + WordPress = ❤
Electron + WordPress = ❤Electron + WordPress = ❤
Electron + WordPress = ❤Tomasz Dziuda
 
Odtwarzanie multimediów w HTML5, czyli Player przez duże „P”
Odtwarzanie multimediów w HTML5, czyli Player przez duże „P”Odtwarzanie multimediów w HTML5, czyli Player przez duże „P”
Odtwarzanie multimediów w HTML5, czyli Player przez duże „P”3camp
 
PIKLIST - Rapid WordPress Framework
PIKLIST - Rapid WordPress FrameworkPIKLIST - Rapid WordPress Framework
PIKLIST - Rapid WordPress FrameworkSzymon Kapturkiewicz
 
WordUp Łódź - Bedrock - jak przyspieszyć development
WordUp Łódź - Bedrock - jak przyspieszyć developmentWordUp Łódź - Bedrock - jak przyspieszyć development
WordUp Łódź - Bedrock - jak przyspieszyć developmentInterSynergy
 
Co nowego w VS 2013 dla programistów ASP.NET?
Co nowego w VS 2013 dla programistów ASP.NET?Co nowego w VS 2013 dla programistów ASP.NET?
Co nowego w VS 2013 dla programistów ASP.NET?Bartlomiej Zass
 
WordUp Trójmiasto - Sage 9 w praktyce
WordUp Trójmiasto - Sage 9 w praktyceWordUp Trójmiasto - Sage 9 w praktyce
WordUp Trójmiasto - Sage 9 w praktyceDawid Urbański
 
Daj się wyręczyć - Joomla Day Polska 2014
Daj się wyręczyć - Joomla Day Polska 2014Daj się wyręczyć - Joomla Day Polska 2014
Daj się wyręczyć - Joomla Day Polska 2014Tomasz Dziuda
 
Wtyczkowe kompendium - WordUp Warszawa
Wtyczkowe kompendium - WordUp WarszawaWtyczkowe kompendium - WordUp Warszawa
Wtyczkowe kompendium - WordUp WarszawaTomasz Dziuda
 
WordUp Łódź - Sage - Twoje szablony będą jak supermodelki
WordUp Łódź - Sage - Twoje szablony będą jak supermodelkiWordUp Łódź - Sage - Twoje szablony będą jak supermodelki
WordUp Łódź - Sage - Twoje szablony będą jak supermodelkiInterSynergy
 
Wtyczkowe Kompendium - WordUp Łódź #12
Wtyczkowe Kompendium - WordUp Łódź #12Wtyczkowe Kompendium - WordUp Łódź #12
Wtyczkowe Kompendium - WordUp Łódź #12Tomasz Dziuda
 

What's hot (20)

Optymalizacja aplikacji ASP.NET
Optymalizacja aplikacji ASP.NETOptymalizacja aplikacji ASP.NET
Optymalizacja aplikacji ASP.NET
 
20 Joomlasztuczek, które mogą CI się przydać
20 Joomlasztuczek, które mogą CI się przydać20 Joomlasztuczek, które mogą CI się przydać
20 Joomlasztuczek, które mogą CI się przydać
 
Potęga pliku .htaccess
Potęga pliku .htaccessPotęga pliku .htaccess
Potęga pliku .htaccess
 
Wprowadzenie do WP-API
Wprowadzenie do WP-APIWprowadzenie do WP-API
Wprowadzenie do WP-API
 
HTML5: Atak i obrona
HTML5: Atak i obronaHTML5: Atak i obrona
HTML5: Atak i obrona
 
Hugo - make webdev fun again
Hugo - make webdev fun againHugo - make webdev fun again
Hugo - make webdev fun again
 
Statycznie czy dynamicznie?
Statycznie czy dynamicznie?Statycznie czy dynamicznie?
Statycznie czy dynamicznie?
 
Jak tworzyć motywy przyjazne użytkownikom i programistom - WordUp Silesia
Jak tworzyć motywy przyjazne użytkownikom i programistom - WordUp SilesiaJak tworzyć motywy przyjazne użytkownikom i programistom - WordUp Silesia
Jak tworzyć motywy przyjazne użytkownikom i programistom - WordUp Silesia
 
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistomWordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
 
Electron + WordPress = ❤
Electron + WordPress = ❤Electron + WordPress = ❤
Electron + WordPress = ❤
 
Odtwarzanie multimediów w HTML5, czyli Player przez duże „P”
Odtwarzanie multimediów w HTML5, czyli Player przez duże „P”Odtwarzanie multimediów w HTML5, czyli Player przez duże „P”
Odtwarzanie multimediów w HTML5, czyli Player przez duże „P”
 
PIKLIST - Rapid WordPress Framework
PIKLIST - Rapid WordPress FrameworkPIKLIST - Rapid WordPress Framework
PIKLIST - Rapid WordPress Framework
 
WordUp Łódź - Bedrock - jak przyspieszyć development
WordUp Łódź - Bedrock - jak przyspieszyć developmentWordUp Łódź - Bedrock - jak przyspieszyć development
WordUp Łódź - Bedrock - jak przyspieszyć development
 
Co nowego w VS 2013 dla programistów ASP.NET?
Co nowego w VS 2013 dla programistów ASP.NET?Co nowego w VS 2013 dla programistów ASP.NET?
Co nowego w VS 2013 dla programistów ASP.NET?
 
WordUp Trójmiasto - Sage 9 w praktyce
WordUp Trójmiasto - Sage 9 w praktyceWordUp Trójmiasto - Sage 9 w praktyce
WordUp Trójmiasto - Sage 9 w praktyce
 
Daj się wyręczyć - Joomla Day Polska 2014
Daj się wyręczyć - Joomla Day Polska 2014Daj się wyręczyć - Joomla Day Polska 2014
Daj się wyręczyć - Joomla Day Polska 2014
 
Wtyczkowe kompendium - WordUp Warszawa
Wtyczkowe kompendium - WordUp WarszawaWtyczkowe kompendium - WordUp Warszawa
Wtyczkowe kompendium - WordUp Warszawa
 
WordUp Łódź - Sage - Twoje szablony będą jak supermodelki
WordUp Łódź - Sage - Twoje szablony będą jak supermodelkiWordUp Łódź - Sage - Twoje szablony będą jak supermodelki
WordUp Łódź - Sage - Twoje szablony będą jak supermodelki
 
Wtyczkowe Kompendium - WordUp Łódź #12
Wtyczkowe Kompendium - WordUp Łódź #12Wtyczkowe Kompendium - WordUp Łódź #12
Wtyczkowe Kompendium - WordUp Łódź #12
 
JavaScript, Moduły
JavaScript, ModułyJavaScript, Moduły
JavaScript, Moduły
 

Similar to Błędy userów, niedoróbki koderów

Jak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training DayJak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training DayTomasz Dziuda
 
Adobe Dreamweaver CS3 z ASP, ColdFusion i PHP. Oficjalny podręcznik
Adobe Dreamweaver CS3 z ASP, ColdFusion i PHP. Oficjalny podręcznikAdobe Dreamweaver CS3 z ASP, ColdFusion i PHP. Oficjalny podręcznik
Adobe Dreamweaver CS3 z ASP, ColdFusion i PHP. Oficjalny podręcznikWydawnictwo Helion
 
4Developers 2023: frontendowe optymalizacje wydajności / Bartek Miś / Web Dev...
4Developers 2023: frontendowe optymalizacje wydajności / Bartek Miś / Web Dev...4Developers 2023: frontendowe optymalizacje wydajności / Bartek Miś / Web Dev...
4Developers 2023: frontendowe optymalizacje wydajności / Bartek Miś / Web Dev...Bartłomiej Miś
 
Drobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadkuDrobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadkumsobiegraj
 
Apache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użyciaApache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użyciaWojciech Lichota
 
Serwer internetowy w systemie Linux
Serwer internetowy w systemie LinuxSerwer internetowy w systemie Linux
Serwer internetowy w systemie Linuxbm9ib2r5
 
Using Red Gate SQL Doc for database documentation
Using Red Gate SQL Doc for database documentationUsing Red Gate SQL Doc for database documentation
Using Red Gate SQL Doc for database documentationMariusz Koprowski
 
Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?tkryskiewicz
 
W3 Total Cache - skuteczne przyśpieszanie WordPressa
W3 Total Cache - skuteczne przyśpieszanie WordPressaW3 Total Cache - skuteczne przyśpieszanie WordPressa
W3 Total Cache - skuteczne przyśpieszanie WordPressaBartosz Romanowski
 
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...The Software House
 
ASP.NET 2.0. Gotowe rozwiązania
ASP.NET 2.0. Gotowe rozwiązaniaASP.NET 2.0. Gotowe rozwiązania
ASP.NET 2.0. Gotowe rozwiązaniaWydawnictwo Helion
 
100 sposobów na serwery Windows
100 sposobów na serwery Windows100 sposobów na serwery Windows
100 sposobów na serwery WindowsWydawnictwo Helion
 
HTML5 - now or later
HTML5 - now or laterHTML5 - now or later
HTML5 - now or laterKasia Drzyzga
 
Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009
Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009
Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009Logicaltrust pl
 
Najlepsze wtyczki WordPress, które każdy developer powinien mieć
Najlepsze wtyczki WordPress, które każdy developer powinien miećNajlepsze wtyczki WordPress, które każdy developer powinien mieć
Najlepsze wtyczki WordPress, które każdy developer powinien miećMaciej Swoboda
 

Similar to Błędy userów, niedoróbki koderów (20)

Wydajny frontend 2023
Wydajny frontend 2023Wydajny frontend 2023
Wydajny frontend 2023
 
Jak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training DayJak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training Day
 
Responsive Web Design
Responsive Web DesignResponsive Web Design
Responsive Web Design
 
Adobe Dreamweaver CS3 z ASP, ColdFusion i PHP. Oficjalny podręcznik
Adobe Dreamweaver CS3 z ASP, ColdFusion i PHP. Oficjalny podręcznikAdobe Dreamweaver CS3 z ASP, ColdFusion i PHP. Oficjalny podręcznik
Adobe Dreamweaver CS3 z ASP, ColdFusion i PHP. Oficjalny podręcznik
 
4Developers 2023: frontendowe optymalizacje wydajności / Bartek Miś / Web Dev...
4Developers 2023: frontendowe optymalizacje wydajności / Bartek Miś / Web Dev...4Developers 2023: frontendowe optymalizacje wydajności / Bartek Miś / Web Dev...
4Developers 2023: frontendowe optymalizacje wydajności / Bartek Miś / Web Dev...
 
Drobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadkuDrobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadku
 
Html5 i css3
Html5 i css3Html5 i css3
Html5 i css3
 
Apache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użyciaApache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użycia
 
Wordpress i nagłówki
Wordpress i nagłówkiWordpress i nagłówki
Wordpress i nagłówki
 
Serwer internetowy w systemie Linux
Serwer internetowy w systemie LinuxSerwer internetowy w systemie Linux
Serwer internetowy w systemie Linux
 
Using Red Gate SQL Doc for database documentation
Using Red Gate SQL Doc for database documentationUsing Red Gate SQL Doc for database documentation
Using Red Gate SQL Doc for database documentation
 
Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?
 
W3 Total Cache - skuteczne przyśpieszanie WordPressa
W3 Total Cache - skuteczne przyśpieszanie WordPressaW3 Total Cache - skuteczne przyśpieszanie WordPressa
W3 Total Cache - skuteczne przyśpieszanie WordPressa
 
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
 
ASP.NET 2.0. Gotowe rozwiązania
ASP.NET 2.0. Gotowe rozwiązaniaASP.NET 2.0. Gotowe rozwiązania
ASP.NET 2.0. Gotowe rozwiązania
 
100 sposobów na serwery Windows
100 sposobów na serwery Windows100 sposobów na serwery Windows
100 sposobów na serwery Windows
 
HTML5 - now or later
HTML5 - now or laterHTML5 - now or later
HTML5 - now or later
 
Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009
Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009
Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009
 
Jaki hosting pod wordpressa
Jaki hosting pod wordpressaJaki hosting pod wordpressa
Jaki hosting pod wordpressa
 
Najlepsze wtyczki WordPress, które każdy developer powinien mieć
Najlepsze wtyczki WordPress, które każdy developer powinien miećNajlepsze wtyczki WordPress, które każdy developer powinien mieć
Najlepsze wtyczki WordPress, które każdy developer powinien mieć
 

More from Arkadiusz Stęplowski

Landing page prosto z gutenberga (wersja uaktualniona)
Landing page prosto z gutenberga (wersja uaktualniona)Landing page prosto z gutenberga (wersja uaktualniona)
Landing page prosto z gutenberga (wersja uaktualniona)Arkadiusz Stęplowski
 
WordCamp 2016 Najdłuższe wdrożenie świata
WordCamp 2016 Najdłuższe wdrożenie świataWordCamp 2016 Najdłuższe wdrożenie świata
WordCamp 2016 Najdłuższe wdrożenie świataArkadiusz Stęplowski
 
Aleksandra Łączek – Niezbędnik Admina
Aleksandra Łączek – Niezbędnik AdminaAleksandra Łączek – Niezbędnik Admina
Aleksandra Łączek – Niezbędnik AdminaArkadiusz Stęplowski
 
Gdzie są umiejscowione polskie wordpressy
Gdzie są umiejscowione polskie wordpressyGdzie są umiejscowione polskie wordpressy
Gdzie są umiejscowione polskie wordpressyArkadiusz Stęplowski
 
Blaszane pudelko z grami, Mr.Google odpowie
Blaszane pudelko z grami, Mr.Google odpowieBlaszane pudelko z grami, Mr.Google odpowie
Blaszane pudelko z grami, Mr.Google odpowieArkadiusz Stęplowski
 
Cyfrowy świat nas otacza, więc weźmy z niego coś dla siebie
Cyfrowy świat nas otacza, więc weźmy z niego coś dla siebieCyfrowy świat nas otacza, więc weźmy z niego coś dla siebie
Cyfrowy świat nas otacza, więc weźmy z niego coś dla siebieArkadiusz Stęplowski
 
Kwerenda biblioteczna do pracy licencjackiej
Kwerenda biblioteczna do pracy licencjackiejKwerenda biblioteczna do pracy licencjackiej
Kwerenda biblioteczna do pracy licencjackiejArkadiusz Stęplowski
 

More from Arkadiusz Stęplowski (17)

Es jak FTPS SFTP
Es jak FTPS SFTPEs jak FTPS SFTP
Es jak FTPS SFTP
 
Landing page prosto z gutenberga (wersja uaktualniona)
Landing page prosto z gutenberga (wersja uaktualniona)Landing page prosto z gutenberga (wersja uaktualniona)
Landing page prosto z gutenberga (wersja uaktualniona)
 
Landing page prosto z gutenberga
Landing page prosto z gutenbergaLanding page prosto z gutenberga
Landing page prosto z gutenberga
 
Calkiem przyzwoity backup
Calkiem przyzwoity backupCalkiem przyzwoity backup
Calkiem przyzwoity backup
 
WordCamp 2016 Najdłuższe wdrożenie świata
WordCamp 2016 Najdłuższe wdrożenie świataWordCamp 2016 Najdłuższe wdrożenie świata
WordCamp 2016 Najdłuższe wdrożenie świata
 
Aleksandra Łączek – Niezbędnik Admina
Aleksandra Łączek – Niezbędnik AdminaAleksandra Łączek – Niezbędnik Admina
Aleksandra Łączek – Niezbędnik Admina
 
Gdzie są umiejscowione polskie wordpressy
Gdzie są umiejscowione polskie wordpressyGdzie są umiejscowione polskie wordpressy
Gdzie są umiejscowione polskie wordpressy
 
Historia i budowa komputera
Historia i budowa komputeraHistoria i budowa komputera
Historia i budowa komputera
 
Cyfrowy świat wprowadzenie
Cyfrowy świat wprowadzenieCyfrowy świat wprowadzenie
Cyfrowy świat wprowadzenie
 
Blaszane pudelko z grami, Mr.Google odpowie
Blaszane pudelko z grami, Mr.Google odpowieBlaszane pudelko z grami, Mr.Google odpowie
Blaszane pudelko z grami, Mr.Google odpowie
 
Cyfrowy świat nas otacza, więc weźmy z niego coś dla siebie
Cyfrowy świat nas otacza, więc weźmy z niego coś dla siebieCyfrowy świat nas otacza, więc weźmy z niego coś dla siebie
Cyfrowy świat nas otacza, więc weźmy z niego coś dla siebie
 
WordCamp 2011 Informacja Rulez!
WordCamp 2011 Informacja Rulez!WordCamp 2011 Informacja Rulez!
WordCamp 2011 Informacja Rulez!
 
Warszawski quiz biblioteczny
Warszawski quiz bibliotecznyWarszawski quiz biblioteczny
Warszawski quiz biblioteczny
 
Kwerenda biblioteczna do pracy licencjackiej
Kwerenda biblioteczna do pracy licencjackiejKwerenda biblioteczna do pracy licencjackiej
Kwerenda biblioteczna do pracy licencjackiej
 
Dominik Ghirlandaio
Dominik GhirlandaioDominik Ghirlandaio
Dominik Ghirlandaio
 
Wirtualnywydawca.pl analiza wortalu
Wirtualnywydawca.pl analiza wortaluWirtualnywydawca.pl analiza wortalu
Wirtualnywydawca.pl analiza wortalu
 
Historia Bibliotek
Historia BibliotekHistoria Bibliotek
Historia Bibliotek
 

Błędy userów, niedoróbki koderów

  • 1. Niedoszły Bibliotekarz przedstawia: Błędy userów, niedoróbki koderów http://arek.bibliotekarz.com WordCamp Gdaosk 2012
  • 2. Pogadanka na licencji CC BY 3.0 • kopiowad, rozpowszechniad, odtwarzad i wykonywad utwór • tworzyd utwory zależne • użytkowad utwór w sposób komercyjny Ten utwór jest dostępny na licencji Creative Commons Uznanie autorstwa 3.0 Polska. http://www.slideshare.net/bibliotekarz
  • 3. Główne psuje Internetu • Użytkownicy • Wykonawcy Strony problemu będą się przenikać bo zarówno jedni i drudzy mogą w kilku przypadkach zepsuć to samo, choć różnymi metodami.
  • 5. <H1> ma byd jeden </H1>
  • 6. Dwa akapity z vs. MS Word Ponad 130 kb
  • 8. Jak wyszukad fotkę po tagach alt =‘’” title=‘’DSC0234481.jpg” Pamiętajcie co zawiera EXIF miniaturki, lokalizacja, data, godzina, …
  • 10. Strona jest dla gościa Banner Banner
  • 13. User mode = OFF • Nie szaled z typografią, znacznikami, wtyczkami. • Oszczędzad miejsce na istotne treści. • Przemyśled dla kogo strona i jaka nawigacja. • Nadawad zdjęciom i linkom sensowne nazwy. • Konwertowad teksty i zdjęcia. • Uważad przy osadzaniu obiektów od innych, darmowe wtyczki, skórki, widgety (zwłaszcza z szyfrowanym kodem).
  • 15. Przynajmniej jest jeden krój fonta ! No dobrze trzy kroje z obowiązkowym Comic Sans MS
  • 16. Jednolitośd języka na stronie - ‘’Twoją stronę odwiedziło 143245 guest’’ - ‘’poruszyd świadome używanie Read more…’’ - ‘’Komentarze 01.01.1970 title text Twój komentarz’’ - ‘’Strona: 1 2 3 4 5... Następna » Glos 0.7 uses technologies including PHP’’
  • 17. Twórz nowe motywy lub potomne /* Theme Name: Klusek Twenty Eleven Description: Motyw potomny Twenty Eleven Author: Klusek Template: twentyeleven */
  • 18. Standardy • Wykorzystanie zaleceo schema.org • Zgodnośd z RFC
  • 19. Skórkowtyczkom dziękujemy Wspieramy 404, mogą przekazad zdecydowanie większą wartośd niż prosty komunikat o błędzie.
  • 20. Wrócisz po roku do kodu a tam… <code> cimcia() dumcia() trololo() </code> a przecież można było: joeplugin_post_pretty_title()
  • 21. Zadbaj o oczy i umysł ;) // komentuj żeby było wiadomo co do czego <użyj> <formatowania kodu> <to pomaga naprawdę> </użyj>
  • 22. Wujowo ale jednakowo Wersja 3.2.8 | Autor: Arne Brachhold | Odwiedź witrynę wtyczki | Settings | FAQ | Support | Donate Wersja 0.1 | Autor: Ivan Kazandzhiev | Odwiedź witrynę wtyczki
  • 24. 1 plik ładuje się szybciej <link rel='stylesheet' id='helion-ksiegarnia-css' href='http://…pro/css/ksiegarnia.css?ver=3.4.2' type='text/css‘ media='all' /> 1431b <link rel='stylesheet' id='helion-shortcodes-css' href='http://…pro/css/shortcodes.css?ver=3.4.2' type='text/css‘ media='all' /> 895b <link rel='stylesheet' id='helion-widgets-css' href='http://…pro/css/widgets.css?ver=3.4.2' type='text/css‘ media='all' /> 688b <link rel='stylesheet' id='helion-wyszukiwarka-css' href='http://…pro/css/wyszukiwarka.css?ver=3.4.2' type='text/css' media='all' /> 192b CSS Sprite
  • 25. Struktura Wtyczka |- [css] |- [img] |- [js]
  • 26. formularze Kontrola poprawności wprowadzonych danych ok, ale bez blokady wysyłania. W przypadku nieprzewidzianych danych ujawnia się dodatkowe pole dla opisu. Każde pole formularza jednoznacznie opisane, podpowiedź (najlepiej kontekstowa, nie wymagająca zmiany) w polu edycji. Po co gromadzid informacje nieużywane? Weryfikacja przyjmowanych danych i uprawnieo
  • 27. Informacja zwrotna www-data@helion.pl (www-data) napisał: HELION SA, 44-100 Gliwice, ul. Ko ciuszki 1C Numer KRS 0000121256 S d Rejonowy w Gliwicach, X Wydzia Gospodarczy Krajowego Rejestru S dowego. NIP 631-020-02-68, REGON: 271070648 Kapita zak adowy: 500100 z w ca o ci wp acony
  • 28. Ludzie łatwo giną Twoje zamówienie ma status ‘’W drodze” • Czeka na akceptację • Zaakceptowane • Pakowanie • Wysyłka • Kurier • Dostarczone
  • 29. ‘’drobiazgi’’ wp_remote_get () vs. Curl Dodatkowe tabele Wiele wpisów w tabeli wp_options zamiast utworzenia tablicy Inicjacja wtyczki i jej usuwanie Różne konfiguracje serwerów użytkownika
  • 30. Czytaj ze zrozumieniem <meta http-equiv="x-dns-prefetch-control" content="off"/> Chromium watches for an HTTP header of the form "X-DNS-Prefetch-Control" (with a vcase insensitive)alue of either "on" or "off."
  • 31. Weryfikuj informacje Cudowny lek anonimizujący wordpresa remove_action('wp_head', 'wp_generator'); a w rss nr wersji zostaje :/ BTW zwróciliście uwagę na http://lukrecjusz.pl/.../css/ksiegarnia.css?ver=3.4.2 Błędy w plikach z repozytorium wordpress.org
  • 33. Wikingowie przy ognisku opowiadają: Im więcej przeprowadzisz testów w różnych środowiskach tym mniej masz wrogów.
  • 34. Koder mode = OFF • Typografia i jednolitośd językowa • Czytanie ze zrozumieniem • Weryfikacja źródła ograniczone zaufanie • Jakośd tworzonego kodu i dokumentacji • Korzystanie z dobrych praktyk i utrzymywanie standardów • Przyjaznośd dla użytkownika
  • 36. Porażki Wdrażanie zmian bez zweryfikowanego backupu Porządek w kopiach zapasowych, domenach i serwerach Kopia robocza / testowa dostępna dla wyszukiwarek Pokora względem czasu i umiejętności
  • 37. Najczęstsze źródła problemów • <meta name="generator" content="WordPress .old" /> • admin1 • UPDATE wp_users SET user_status = '$ranga' WHERE ID = $id”; • domena.tld/wp-content/uploads/2010/02/
  • 38. Brak aktualizacji <channel> <title>Ministerstwo Administracji i Cyfryzacji</title> <atom:link href="http://mac.gov.pl/feed/" rel="self" type="application/rss+xml" /> <link>http://mac.gov.pl</link> <description>Ministerstwo Administracji i Cyfryzacji</description> <lastBuildDate>Tue, 09 Oct 2012 13:19:09 +0000</lastBuildDate> <...> <generator>http://wordpress.org/?v=3.4.1</generator> <item> <channel> <title>Kominek IN</title> <atom:link href="http://www.kominek.in/feed/" rel="self" type="application/rss+xml" /> <link>http://www.kominek.in</link> <description>Lifestyle, Kominek, High life, Uczucia</description> <...> <generator>http://wordpress.org/?v=</generator> <item>
  • 39. Słabe hasła i dostęp mnemotechnika Taniecz**, KMorgan%40 głUkłÓbaBzakaRmaSdłUhaS5 głupia kłótliwa babo za karę masz długie hasło x (gdzie x = ulubiony date +%w) +cAw4l:p ssh sftp zapisane hasła strona trzasła
  • 40. Polityka bezpieczeostwa Jeden wordpress jedna baza danych Każdy prefix do tabel unikalny Standardowe ścieżki do wp-config.php czy użytków jak PhpMyAdmin zmienione Wzbogacone .htaccess Właściwe prawa dostępu do plików i katalogów
  • 41. Options All -Indexes Godziny pracy we wrześniu: 16 - 0.30 (coś niecoś poprawiła bo już nie ma widocznych godzin wgrania plików) 16 - 0.30 ale raz jakiś banner wrzucił o 8 rano 11 - 14
  • 42. .htaccess ServerSignature Off # ograniczamy limit uploadu do 10mb LimitRequestBody 10240000 # obsługa typowych błędów ErrorDocument 404 /404.php ErrorDocument 403 "<html><head><title>O NO!</title></head><body><br /><br /><h2><tt>403 Chyba coś nie zadzialalo :(</tt></h2></body></html>’’ ErrorDocument 500 /error.php
  • 43. Prosto z codex RewriteRule ^wp-admin/includes/ - [F,L] RewriteRule !^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+.php$ - [F,L] RewriteRule ^wp- includes/js/tinymce/langs/.+.php - [F,L] RewriteRule ^wp-includes/theme-compat/ - [F,L]
  • 44. # wycinka komentarzy z kosmosu RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .wp-comments- post.php* RewriteCond %{HTTP_REFERER} !.*twoja-dom.ena* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L] # wycina metodę TRACE RewriteCond %{REQUEST_METHOD} ^TRAC(E|K) RewriteRule .* - [F]
  • 45. # wycinka hotlinkowania RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www.)?twoja-dom.ena/.*$ [NC] RewriteRule .(gif|jpg|swf|flv|png)$ http://twój.obrazek.jpg [R=302,L] # przekierowanie na subdomenę www RewriteCond %{HTTP_HOST} ^twoja.tld$ [NC] RewriteRule ^(.*)$ http://www.twoja.tld/$1 [R=301,L]
  • 46. # blokujemy dostęp do plików <FilesMatch ".(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$"> Order Allow,Deny Deny from all </FilesMatch> <files ^wp-config.php$> Order deny,allow deny from all </files>
  • 47. # global User-agent: * robots.txt Disallow: /cgi-bin/ Disallow: /wp-admin/ Disallow: /wp-includes/ Disallow: /wp-content/plugins/ Disallow: /wp-content/cache/ Disallow: /wp-content/themes/ Disallow: /trackback/ Disallow: /feed/ Disallow: /comments/ Disallow: /category/*/* Disallow: */trackback/ Disallow: */feed/ Disallow: */comments/ Disallow: /*? Allow: /wp-content/uploads/
  • 48.
  • 50. Materiały użyte w przykładach http://www.zombiesamurai.pl http://wolnelektury.pl http://mac.gov.pl http://www.kominek.in http://blog.kurasinski.com http://hatalska.com http://lukrecjusz.pl