#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}