#Dokumentation der Sessions vom TYPO3camp Stuttgart 2016 ##Samstag, 11.6.2016 **SYSEXT:form -- Björn Jacob, TRITUM (Raum Schommer Media)** * Ab TYPO3 8 wird vieles im Backend besser, da der Wizard neu umgesetzt wird. * Doku wurde für Versionen bis 6.2 überarbeitet. Die Dokumentation für die neuen Features in TYPO3 7 fehlt noch. Daran wird aber gearbeitet. * Ab TYPO3 7 basierend auf Extbase und Fluid! * stdWrap aus Sicherheitsgründen heraus genommen! -> dies trifft nur für das Backend zu, wenn die Formulare per TypoScript gebaut werden, ist nunmehr alles! stdWrap-able * Das Schreiben von Post-Prozessoren hat sich über die letzten Versionen nicht geändert. Es ist allerdings nicht schwierig, eine Prozessoren zu schreiben. Für künftige Versionen ist ein "Save to DB" Prozessor geplant. * Upgrade von 6 auf 7 ist möglich, Kompatibilitätsmodus ist standardmäßig aktiv. * Wer auf 7 neu beginnt sollte den Kompatibilitätsmodus abschalten! * Wer noch mit TYPO3 6.2 und form arbeitet, sollte in der überarbeiteten Doku die Sektion "Layout" intensiv durcharbeiten und Ansichtsspezifische .layout settings vornehmen (siehe \url{https://docs.typo3.org/typo3cms/extensions/form/Configuration/Layout/LayoutViewSpecific/Index.html)} * wt\_spamshield unterstützt form bis 6.2, wird aber bald für 7.x zur Verfügung stehen * das "Predefined Form" Feature aus 8 wird bald als eigenständige Extension für 7 LTS bereitgestellt Doku: \url{https://docs.typo3.org/typo3cms/extensions/form/Introduction/Index.html} Forger: \url{https://forger.typo3.org/sprint/cig?boardId=FormsNG} Slack: Eigener Channel "ext:form" Nächster Schritte: \url{https://wiki.typo3.org/Blueprints/FormWizard} **Alice im Datahandler. Was TYPO3 mit euren Daten macht - Andreas Wolf (Raum Schommer Media)** * Einführung in die DB-Struktur von TYPO3 * Kurze Erklärung des TCA, FormEngine und DataHandler * FormEngine nimmt die Daten aus der DB und das TCA um die Formulare im Backend anzuzeigen * DataHandler sind mächtig, lassen sich recht einfach erweitern/überschreiben um eigenes Verhalten zu implementieren * DataHandler stellen Commands bereit, die sequenziell verarbeitet werden und einfach selbst genutzt werden können **composer - Benni Mack (Raum Schommer Media)** * Benni ist kein composer Experte * \url{https://getcomposer.org} * composer ist ein Dependency Management für PHP Bibliotheken * plus Autoloading der PHP Klassen * Befehl-Aufruf "composer require typo3/cms" lädt die aktuellste stabile TYPO3 Version mit allen Abhängigkeiten * In der Datei composer.json werden die Pakete aufgelistet * Im Verzeichnis "vendor" liegen die Bibliotheken * Man spart sich TYPO3 Version auswählen, herunterladen, SymLinks erzeugen * Das Paketrepository für die composer Pakete findet man unter \url{https://packagist.org} * In der composer.json kann man auch eigene Repositories definieren von Paketen, die nicht auf packagist sind * Jedes Paket hat einen Namen, bestehend aus VendorName/PackageName, z.B. "typo3/cms" * Es findet alles auf der Kommandozeile statt * composer.json = Die Anleitung * composer.lock = Welche Version genau wird installiert * "composer install" baut aus der composer.json zusammen * "composer update" baut aus der composer.lock (mit genau den Abhängigkeiten) zusammen * composer.lock ins Git einchecken und deployen. Bei "composer update" wird der genaue Stand wie auf der Entwicklung geholt * PackageStates wird von composer nicht gehandhabt * Es gibt "composer mode" und "nicht composer mode". Bei "nicht composer mode" führt man "composer require typo3/cms" aus, welches TYPO3 im gewohnten Format installiert. Beim composer mode (composer create-project ...) sieht die Ordnerstruktur völlig anders aus. Extensions können dann nicht mehr über den Extensionmanager heruntergeladen werden. Diese MÜSSEN immer über composer geladen werden (im EM nur noch Aktivierung/Deaktivierung). **Diary of a Hack -- Helmut Hummel** * Evil TypoScript code lines (select ... without htmlspecialchars) * Restrict MySQL access to a certain user (not root!!!) * Google Hacking (to find websites which use old/hackable stuff) * sqlmap for penetration testing * If you got fucked off, take your site offline! * Analysis of the gab which gave the hacker the opportunity to brake into your system * Fix it quickly * Improve your workflow to prevent from further hacks * Best practices Slides: \url{https://speakerdeck.com/helhum/diary-of-a-hack} **iw\_master -- Armin Vieweg (Raum pluswerk)** * Grund-Idee: alles, was TYPO3 zwingend in der Datenbank braucht, soll in klarer Struktur als Code abgelegt werden können * Es gibt einen Haufen von CLI-Tools um diese Daten mit der Installation anzuzeigen und abzugleichen * nutzt Composer, nutzt TYPO3 Applikations-Kontext * Doku (vorerst nur) in Deutsch auf institute-web.org -- soll eine Plattform für die Zukunft zum Thema werden * Am besten mit composer create-project arbeiten * Startet einen Installer auf der Konsole, konfiguriert das System, legt Daten in die DB * Ist noch unveröffentliche Beta, zu den DD16 soll es veröffentlich werden * \url{https://bitbucket.org/InstituteWeb/iw\_master} * \url{https://packagist.org/packages/instituteweb/iw\_master} **Continuous Delivery - Tools, Workflow, Culture** * Slides: \url{http://michaellihs.github.io/presentation-cicd-t3cs2016/#/} **Recipies -- von allen für alle (Raum pluswerk)** * Skript (PHP) zum Mulitidomain-Multilanguage-404-Handling (Christian Händel) -- \url{https://gist.github.com/t3agent/e2d5bacd733aec6d491ec36a8d00c61d} * Skript (Shell) zum Umformatieren von PHP-Dateien nach PSR-2; mit Hilfe von phpcs und git (Morton) * Angular und Firebase * QR-GraphX JS-Bibliothek * In Composer eigene Skripten definieren, die sich mit "composer script-name" ausführen lassen **TYPO3 Security - Jochen Weiland** * SQL-Injections * md5-cracker * saltedpasswords * Cross Site Scripting (XSS) * Exploit Database * TYPO3 ist zahlenmäßig deutlich sicherer als bspw. Wordpress (15 zu 900 Exploits) * Minimum Password length 11 signs * md5 and sha1 rainbow tables * Use secure passwords or die tryin´! * Top 10 and also top 20 of mindless and stupid, silly "passwords" which you should never use * Keep up to date (TYPO3, extensions, PasswordManager (1Password, Keepass, ...) * Use encryption (https (lets encrypt), VPN, SFTP, ...) * Test your SSL-Certificate to check if it is good enough * Never trust any user inputs!!! * Magic TypoScript setup´s: HSTS, X-Frame: Clickjacking, X-XSS Protection, ...) * Disable Directory Index (.htaccess) * Union SQL is evil!!! Maybe you can completely deactivate this string * Restrict the access to defined ports * Remove unused Extensions and use evil extensions only on DEV, not on live Slides: \url{https://jweiland.net/fileadmin/pdf/vortraege-praesentationen/CertiFUNcation\_2016\_Security.pdf} **TypeScript (JavaScript in neu) - Hans Höchtl** * JavaScript is outdated, use TypeScript! * TypeScript is developed by Microsoft AND Google as a joint venture! * Angular2 is nearly only possible with TypeScript * TypeScript can be used with JavaScript, jQuery, node.js, ... * TypeScript is much more than just this old-school and stupid JavaScript! * \url{https://www.typescriptlang.org/} Slides: \url{https://speakerdeck.com/hhoechtl/webmonday-regensburg-typescript} **dvConfig Webservice - Rico** - Produktkonfiguration mit Trennung FrontEnd \& Logik - Regelbasierte Produktbeschreibung, Api für User Decision based Feature Model Constraint Solving - BoilerPlate auf Github mit AngularJS - kostenfrei, ApiKey \& weitere Ressorucen unter: www.davitec.de/dvConfig - Slides unter www.davitec.de/downloads ##Sonntag, 12.6.2016 TYPO3 Deployment (Helmut) \url{https://github.com/helhum/TYPO3-Distribution} \url{https://gist.github.com/helhum/6fa5401cae5ba553e1954b579e1dea5b} **TYPO3 MONITORING (Nicole + X)** * Typo3 Monitoring * Nagios \url{https://typo3.org/extensions/repository/view/nagios} * CareTaker \url{http://www.typo3-caretaker.org/} | \url{http://de.slideshare.net/pk77/typo3-website-monitoring-mit-caretaker} * \url{https://www.t3monitor.de/} Session @t3cs zu TYPO3 Monitoring Extensions -------------------------------------------- Vergleich verschiedene Varianten aus dem TER EXT: t3monitor - \url{https://typo3.org/extensions/repository/view/t3monitor} - Registrierung über \url{https://www.t3monitor.de}, Free \& Bezahlaccounts - sieht einfach, übersichtlich und modern aus - TER Infos zu installierten Extensions vorhanden - custom tests ? unklar ... EXT: t3monitoring - \url{https://typo3.org/extensions/repository/view/t3monitoring} - Pricing via Donation - TER Infos zu installierten Extensions vorhanden - Ausagen in der Runde, dass kein großer Installaufwand - modern/übersichtliche Optik im BackEnd, - nur Standard Tests, ggf custom alerts (aber unklar / ungetestet in der Runde) EXT: Nagios T3 Monitoring - \url{https://typo3.org/extensions/repository/view/nagios} - Nagioas Server, T3 nur T3 Client Extensions - hoher installationsaufwand .. Aussage in der Runde => mind 3-5 Tage Skript basteln, weil im Nagios die TER Infos bzgl der Extension Security Issues nicht vorhanden sind EXT: CareTaker - \url{https://typo3.org/extensions/repository/view/caretaker} - ggü T3monitoring größerer Funtkionsumfang - etwas erhöhter Install Aufwand, aber machbar - auf server sowohl server als auch instance extensions installieren - server: Ordner anlegen für die Clients, Sceduler, 3 tasks -> update extension manager (insecure etc), t3 version update, testrunner - Tests können zugewiesen werden - unklar, ob es aktiv weiter entwickelt wird .. aktuell nur maintenance - es gibt FrontEnd Plugins für Ausgaben / Datenaggregation - bringt einige standard Tests mit .. zB kein Admin, aktuelle Version etc., bestimmte TYPO3\_CONF\_VARS, ist ChangeLog erreichbar usw - rsa verschlüsselung für die client communication **Jenkins Hack Session** Hier die README auf Github - versuche das noch etwas aufzuräumen... \url{https://github.com/michaellihs/jenkins-t3cs2016/blob/master/README.md}
{}