Upload
arkadiusz-steplowski
View
1.741
Download
1
Embed Size (px)
DESCRIPTION
Przegląd popularnych błędów popełnianych podczas tworzenia i prowadzenia bloga na silniku WordPress
Citation preview
Błędy userów, niedoróbki koderów
Niedoszły Bibliotekarz
przedstawia:
WordCamp Gdańsk 2012 http://arek.bibliotekarz.com
Pogadanka na licencji CC BY 3.0
• kopiować, rozpowszechniać, odtwarzać i wykonywać utwór
• tworzyć utwory zależne • użytkować 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 być jeden </H1>
vs.
Dwa akapity
z MS Word
Ponad130 kb
DSC000234481.jpg
Jak wyszukać fotkę po tagach alt =‘’” title=‘’DSC0234481.jpg”
Pamiętajcie co zawieraEXIF
miniaturki,lokalizacja, data, godzina,…
Kasuj co zbędne
Strona jest dla gościaBanner
Banner
Trudnozmienialne URL-e
http://lukrecjusz.pl/kuchnia/opinie-recenzja/produkty/
i wygodne menu
RozbójnicySkórki WtyczkiWidgetyDodatki…
User mode = OFF
• Nie szaleć z typografią, znacznikami, wtyczkami.
• Oszczędzać miejsce na istotne treści.• Przemyśleć dla kogo strona i jaka nawigacja.• Nadawać zdjęciom i linkom sensowne nazwy.• Konwertować teksty i zdjęcia.• Uważać 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ść języka na stronie - ‘’Twoją stronę odwiedziło
143245 guest’’ - ‘’poruszyć ś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 ElevenDescription: Motyw potomny Twenty ElevenAuthor: KlusekTemplate: twentyeleven*/
Standardy
• Wykorzystanie zaleceń schema.org• Zgodność z RFC
Skórkowtyczkom dziękujemy
Wspieramy 404, mogą przekazać zdecydowanie większą wartość 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ść 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 gromadzić informacje nieużywane?Weryfikacja przyjmowanych danych i uprawnień
Informacja zwrotna
[email protected] (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. CurlDodatkowe tabeleWiele wpisów w tabeli wp_options zamiast
utworzenia tablicyInicjacja wtyczki i jej usuwanieRóż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 wordpresaremove_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ść językowa• Czytanie ze zrozumieniem• Weryfikacja źródła ograniczone zaufanie• Jakość tworzonego kodu i dokumentacji• Korzystanie z dobrych praktyk i
utrzymywanie standardów • Przyjazność dla użytkownika
admin1
PorażkiWdrażanie zmian bez zweryfikowanego
backupuPorządek w kopiach zapasowych, domenach i
serwerachKopia robocza / testowa dostępna dla
wyszukiwarekPokora 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ępmnemotechnika Taniecz**, KMorgan%40głUkłÓbaBzakaRmaSdłUhaS5gł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 bezpieczeństwa
Jeden wordpress jedna baza danychKażdy prefix do tabel unikalny Standardowe ścieżki do wp-config.php czy
użytków jak PhpMyAdmin zmienioneWzbogacone .htaccessWłaściwe prawa dostępu do plików i katalogów
Options All -IndexesGodziny 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 10mbLimitRequestBody 10240000
# obsługa typowych błędówErrorDocument 404 /404.phpErrorDocument 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 kosmosuRewriteCond %{REQUEST_METHOD} POSTRewriteCond %{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ę TRACERewriteCond %{REQUEST_METHOD} ^TRAC(E|K)RewriteRule .* - [F]
# wycinka hotlinkowaniaRewriteCond %{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ę wwwRewriteCond %{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,DenyDeny from all</FilesMatch>
<files ^wp-config.php$>Order deny,allowdeny from all</files>
# globalUser-agent: *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/
robots.txt
http://www.josiahcole.com/2007/07/11/almost-perfect-htaccess-file-for-wordpress-blogs/http://codex.wordpress.org/Hardening_WordPress#Securing_wp-config.phphttp://webhelp.pl/blog/jak-nie-pisac-wtyczek-i-szablonow-dla-wordpressahttp://blog.vokiel.com/css-minify-combine-zmniejszanie-laczenie-plikow-css-w-jedenhttp://webfaces.pl/blog/wordpress-jako-cms-najczestsze-bledy-deweloperowhttp://www.optart.pl/2011/12/wordcamp-2011http://www.problogger.net/archives/2012/08/29/top-10-wordpress-security-mythshttp://planetozh.com/blog/2009/09/top-10-most-common-coding-mistakes-in-wordpress-plugins/http://perishablepress.com/5g-blacklist-2012/
Warto przejrzeć
Materiały użyte w przykładach
http://www.zombiesamurai.plhttp://wolnelektury.plhttp://mac.gov.plhttp://www.kominek.inhttp://blog.kurasinski.comhttp://hatalska.comhttp://lukrecjusz.pl