From fecedc2d98eeaaff6424fb59dc70ef6bdc6dc92d Mon Sep 17 00:00:00 2001 From: Robbie Averill Date: Wed, 7 Nov 2018 12:12:44 +0200 Subject: [PATCH 1/3] [SS-2018-020] Ensure that table names are escaped to prevent possible SQL injection --- src/ORM/DataObjectSchema.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ORM/DataObjectSchema.php b/src/ORM/DataObjectSchema.php index 8251c8477..c80925603 100644 --- a/src/ORM/DataObjectSchema.php +++ b/src/ORM/DataObjectSchema.php @@ -8,6 +8,7 @@ use LogicException; use SilverStripe\Core\ClassInfo; use SilverStripe\Core\Config\Config; use SilverStripe\Core\Config\Configurable; +use SilverStripe\Core\Convert; use SilverStripe\Core\Injector\Injectable; use SilverStripe\Core\Injector\Injector; use SilverStripe\Dev\TestOnly; @@ -125,7 +126,7 @@ class DataObjectSchema $tables = $this->getTableNames(); $class = ClassInfo::class_name($class); if (isset($tables[$class])) { - return $tables[$class]; + return Convert::raw2sql($tables[$class]); } return null; } From 90a50649ddd8284e9a7f668f53d4cab8b50d681d Mon Sep 17 00:00:00 2001 From: Aaron Carlino Date: Wed, 12 Dec 2018 12:34:51 +1300 Subject: [PATCH 2/3] Update translations --- lang/da.yml | 19 ++++++++++++++----- lang/de_DE.yml | 6 ------ lang/en.yml | 9 +++++++++ lang/eo.yml | 19 ++++++++++++++----- lang/fi.yml | 6 ------ lang/it.yml | 6 ------ lang/nl.yml | 22 +++++++++++++++------- lang/sv.yml | 6 ------ 8 files changed, 52 insertions(+), 41 deletions(-) diff --git a/lang/da.yml b/lang/da.yml index 3fe62969a..4fc3ade6f 100644 --- a/lang/da.yml +++ b/lang/da.yml @@ -84,6 +84,7 @@ da: RelationSearch: Relationssøgning ResetFilter: Nulstil SilverStripe\Forms\GridField\GridFieldDeleteAction: + DELETE_DESCRIPTION: Slet Delete: Slet DeletePermissionsFailure: 'Ingen slette rettigheder' EditPermissionsFailure: 'Ingen rettighed til at fjerne emnet' @@ -95,7 +96,7 @@ da: DeletePermissionsFailure: 'Ingen slette rettigheder' Deleted: 'Slet {type} {name}' Save: Gem - SilverStripe\Forms\GridField\GridFieldEditButton: + SilverStripe\Forms\GridField\GridFieldEditButton_ss: EDIT: Rediger SilverStripe\Forms\GridField\GridFieldGroupDeleteAction: UnlinkSelfFailure: 'Kan ikke fjerne dig selv fra denne gruppe, du vil miste administrator rettigheder' @@ -103,6 +104,15 @@ da: OF: af Page: Side View: Vis + SilverStripe\Forms\GridField\GridFieldVersionedState: + ADDEDTODRAFTHELP: 'Elementet er endnu ikke udgivet' + ADDEDTODRAFTSHORT: Kladde + ARCHIVEDPAGEHELP: 'Elementet er fjernet fra kladde og udgivet version' + ARCHIVEDPAGESHORT: Arkiveret + MODIFIEDONDRAFTHELP: 'Elementet har ikke udgivne ændringer' + MODIFIEDONDRAFTSHORT: Ændret + ONLIVEONLYSHORT: 'Kun på udgivet version' + ONLIVEONLYSHORTHELP: 'Elementet er udgivet, men er slette fra kladde' SilverStripe\Forms\MoneyField: FIELDLABELAMOUNT: Beløb FIELDLABELCURRENCY: Valuta @@ -149,8 +159,6 @@ da: other: '{count} år' SilverStripe\ORM\FieldType\DBEnum: ANY: Enhver - SilverStripe\ORM\FieldType\DBForeignKey: - DROPDOWN_THRESHOLD_FALLBACK_MESSAGE: 'For mange relaterede objekter; fallback felt i brug' SilverStripe\ORM\Hierarchy: LIMITED_TITLE: 'For mange underelementer ({count})' SilverStripe\ORM\Hierarchy\Hierarchy: @@ -323,6 +331,7 @@ da: LOGOUT: 'Log ud' LOSTPASSWORDHEADER: 'Glemt kodeord' NOTEPAGESECURED: 'Denne side er beskyttet. Indtast dine loginoplysninger herunder for at få adgang.' + NOTERESETLINKINVALID: '

Kodeordets nulstillingslink er ugyldigt eller udløbet.

Du kan anmode om et nyt link her eller skifte dit kodeord efter du er logget ind.

' NOTERESETPASSWORD: 'Indtast din email adresse, så sender vi dig et link som du kan nulstille dit kodeord med' - PASSWORDRESETSENTHEADER: 'link til at nulstille kodeord afsendt' - PASSWORDRESETSENTTEXT: 'Tak for det. Et link til at nulstille dit kodeord er afsendt, hvis der findes en bruger med denne email adresse.' + PASSWORDSENTHEADER: 'Link til nulstilling af kodeord er sendt til ''{email}''' + PASSWORDSENTTEXT: 'Tak for det! Et link til at nulstille kodeordet er sendt til ''{email}'', forudsat at en konto eksisterer med denne email adresse.' diff --git a/lang/de_DE.yml b/lang/de_DE.yml index e1bea0c6e..995c45ad0 100644 --- a/lang/de_DE.yml +++ b/lang/de_DE.yml @@ -27,8 +27,6 @@ de_DE: ATLEAST: 'Passwörter müssen mindestens {min} Zeichen lang sein.' BETWEEN: 'Passwörter müssen {min} bis {max} Zeichen lang sein.' SHOWONCLICKTITLE: 'Passwort ändern' - SilverStripe\Forms\DateField: - TODAY: heute SilverStripe\Forms\DropdownField: CHOOSE: (Auswählen) CHOOSE_MODEL: '({name} auswählen)' @@ -45,10 +43,6 @@ de_DE: SilverStripe\Forms\GridField\GridFieldDetailForm: CancelBtn: Abbrechen Save: Speichern - SilverStripe\Forms\GridField\GridFieldEditButton: - EDIT: Bearbeiten - SilverStripe\Forms\GridField\GridFieldFilterHeader: - Search: 'Suche "{name}"' SilverStripe\Forms\GridField\GridFieldPaginator: Page: Seite SilverStripe\Forms\MoneyField: diff --git a/lang/en.yml b/lang/en.yml index 37da731e4..2a6fa6c18 100644 --- a/lang/en.yml +++ b/lang/en.yml @@ -104,6 +104,15 @@ en: OF: of Page: Page View: View + SilverStripe\Forms\GridField\GridFieldVersionedState: + ADDEDTODRAFTHELP: 'Item has not been published yet' + ADDEDTODRAFTSHORT: Draft + ARCHIVEDPAGEHELP: 'Item is removed from draft and live' + ARCHIVEDPAGESHORT: Archived + MODIFIEDONDRAFTHELP: 'Item has unpublished changes' + MODIFIEDONDRAFTSHORT: Modified + ONLIVEONLYSHORT: 'On live only' + ONLIVEONLYSHORTHELP: 'Item is published, but has been deleted from draft' SilverStripe\Forms\MoneyField: FIELDLABELAMOUNT: Amount FIELDLABELCURRENCY: Currency diff --git a/lang/eo.yml b/lang/eo.yml index fb6b74ca9..206dffc1d 100644 --- a/lang/eo.yml +++ b/lang/eo.yml @@ -84,6 +84,7 @@ eo: RelationSearch: 'Serĉi rilatojn' ResetFilter: Restartigi SilverStripe\Forms\GridField\GridFieldDeleteAction: + DELETE_DESCRIPTION: Forigi Delete: Forigi DeletePermissionsFailure: 'Mankas permeso forigi' EditPermissionsFailure: 'Mankas permeso malligi rikordon' @@ -95,7 +96,7 @@ eo: DeletePermissionsFailure: 'Mankas permeso forigi' Deleted: 'Forigita {type} {name}' Save: Konservi - SilverStripe\Forms\GridField\GridFieldEditButton: + SilverStripe\Forms\GridField\GridFieldEditButton_ss: EDIT: Redakti SilverStripe\Forms\GridField\GridFieldGroupDeleteAction: UnlinkSelfFailure: 'Ne povas forigi vin el ĉi tiu grupo; vi perdus administrajn rajtojn' @@ -103,6 +104,15 @@ eo: OF: de Page: Paĝo View: Vido + SilverStripe\Forms\GridField\GridFieldVersionedState: + ADDEDTODRAFTHELP: 'Ero ankoraŭ estas ne publikigita' + ADDEDTODRAFTSHORT: Malneto + ARCHIVEDPAGEHELP: 'Ero estas forigita el malneta kaj publika' + ARCHIVEDPAGESHORT: Enarkivigita + MODIFIEDONDRAFTHELP: 'Ero enhavas nepublikigitajn ŝanĝojn' + MODIFIEDONDRAFTSHORT: Ŝanĝita + ONLIVEONLYSHORT: 'Nur ĉe publika' + ONLIVEONLYSHORTHELP: 'Ero estas publikigita, sed ĝi estas forigita el malneto' SilverStripe\Forms\MoneyField: FIELDLABELAMOUNT: Kvanto FIELDLABELCURRENCY: Kurzo @@ -149,8 +159,6 @@ eo: other: '{count} jaroj' SilverStripe\ORM\FieldType\DBEnum: ANY: Ajna - SilverStripe\ORM\FieldType\DBForeignKey: - DROPDOWN_THRESHOLD_FALLBACK_MESSAGE: 'Tro multaj objektoj; retropaŝa kampo uzata' SilverStripe\ORM\Hierarchy: LIMITED_TITLE: 'Tro da idoj ({count})' SilverStripe\ORM\Hierarchy\Hierarchy: @@ -323,6 +331,7 @@ eo: LOGOUT: Elsaluti LOSTPASSWORDHEADER: 'Perdis pasvorton' NOTEPAGESECURED: 'Tiu paĝo estas sekurigita. Enigu viajn akreditaĵojn sube kaj vi aliros pluen.' + NOTERESETLINKINVALID: '

La pasvorta reagorda ligilo estas malvalida aŭ finiĝis.

Vi povas peti novan ĉi tie aŭ ŝanĝi vian pasvorton post vi ensalutis.

' NOTERESETPASSWORD: 'Enigu vian retpoŝtan adreson kaj ni sendos al vi ligilon per kiu vi povas reagordi vian pasvorton' - PASSWORDRESETSENTHEADER: 'Pasvorta reagorda ligilo sendiĝis' - PASSWORDRESETSENTTEXT: 'Dankon. Reagorda ligilo sendiĝis, kondiĉe ke konto ekzistas por ĉi tiu retadreso.' + PASSWORDSENTHEADER: 'Pasvorta reagorda ligilo sendiĝis al ''{email}''' + PASSWORDSENTTEXT: 'Dankon! Reagordita ligilo sendiĝis al ''{email}'', kondiĉe ke konto ekzistas por tiu retadreso.' diff --git a/lang/fi.yml b/lang/fi.yml index 956e69a83..01899f2af 100644 --- a/lang/fi.yml +++ b/lang/fi.yml @@ -95,8 +95,6 @@ fi: DeletePermissionsFailure: 'Ei oikeuksia poistamiseen' Deleted: 'Poistettiin {type} {name}' Save: Tallenna - SilverStripe\Forms\GridField\GridFieldEditButton: - EDIT: Muokkaa SilverStripe\Forms\GridField\GridFieldGroupDeleteAction: UnlinkSelfFailure: 'Et voi siirtää itseäsi pois tästä ryhmästä: menettäisit pääkäyttäjän oikeudet' SilverStripe\Forms\GridField\GridFieldPaginator: @@ -149,8 +147,6 @@ fi: other: '{count} vuotta' SilverStripe\ORM\FieldType\DBEnum: ANY: Yhtään - SilverStripe\ORM\FieldType\DBForeignKey: - DROPDOWN_THRESHOLD_FALLBACK_MESSAGE: 'Liian monta samaan liittyvää objektia: oletuskenttä käytössä' SilverStripe\ORM\Hierarchy: LIMITED_TITLE: 'Liian monta lapsiobjektia ({count}}' SilverStripe\ORM\Hierarchy\Hierarchy: @@ -324,5 +320,3 @@ fi: LOSTPASSWORDHEADER: 'Unohtunut salasana' NOTEPAGESECURED: 'Tämä sivu on suojattu. Syötä tunnistetietosi alle niin pääset eteenpäin.' NOTERESETPASSWORD: 'Syötä sähköpostiosoitteesi ja lähetämme sinulle linkin, jonka avulla saat palautettua salasanasi' - PASSWORDRESETSENTHEADER: 'Salasanan palautuslinkki lähetetty' - PASSWORDRESETSENTTEXT: 'Kiitos, palautuslinkki on lähetetty käyttäjätilille asetettuun sähköpostiosoitteeseen.' diff --git a/lang/it.yml b/lang/it.yml index 4089faf9b..adbdeb0fd 100644 --- a/lang/it.yml +++ b/lang/it.yml @@ -95,8 +95,6 @@ it: DeletePermissionsFailure: 'Non hai i permessi per eliminare' Deleted: 'Eliminato {type} {name}' Save: Salva - SilverStripe\Forms\GridField\GridFieldEditButton: - EDIT: Modifica SilverStripe\Forms\GridField\GridFieldGroupDeleteAction: UnlinkSelfFailure: 'Non è possibile rimuovere te stesso da questo gruppo, perderesti i diritti di admin' SilverStripe\Forms\GridField\GridFieldPaginator: @@ -149,8 +147,6 @@ it: other: '{count} anni' SilverStripe\ORM\FieldType\DBEnum: ANY: Qualsiasi - SilverStripe\ORM\FieldType\DBForeignKey: - DROPDOWN_THRESHOLD_FALLBACK_MESSAGE: 'Troppi oggetti correlati; campo di fallback in uso' SilverStripe\ORM\Hierarchy: LIMITED_TITLE: 'Troppi figli ({count})' SilverStripe\ORM\Hierarchy\Hierarchy: @@ -324,5 +320,3 @@ it: LOSTPASSWORDHEADER: 'Password smarrita' NOTEPAGESECURED: 'La pagina è protetta. Inserisci le credenziali qui sotto per poter andare avanti.' NOTERESETPASSWORD: 'Inserisci il tuo indirizzo e-mail e ti verrà inviato un link per poter azzerare la tua password.' - PASSWORDRESETSENTHEADER: 'Link di azzeramento password inviato' - PASSWORDRESETSENTTEXT: 'Grazie! Un link di azzeramento è stato inviato, supponendo un account esista a quell''indirizzo e-mail.' diff --git a/lang/nl.yml b/lang/nl.yml index 242eccc45..eae378c9d 100644 --- a/lang/nl.yml +++ b/lang/nl.yml @@ -84,6 +84,7 @@ nl: RelationSearch: 'Zoek relatie' ResetFilter: Resetten SilverStripe\Forms\GridField\GridFieldDeleteAction: + DELETE_DESCRIPTION: Verwijder Delete: Verwijder DeletePermissionsFailure: 'Onvoldoende rechten om te verwijderen' EditPermissionsFailure: 'Geen toelating om te ontkoppelen' @@ -95,14 +96,23 @@ nl: DeletePermissionsFailure: 'Onvoldoende rechten om te verwijderen' Deleted: '{type} {name} verwijderd' Save: Opslaan - SilverStripe\Forms\GridField\GridFieldEditButton: - EDIT: Bewerken + SilverStripe\Forms\GridField\GridFieldEditButton_ss: + EDIT: Edit SilverStripe\Forms\GridField\GridFieldGroupDeleteAction: UnlinkSelfFailure: 'U kunt uzelf niet verwijderen van deze groep, omdat u dan geen admin-rechten meer heeft.' SilverStripe\Forms\GridField\GridFieldPaginator: OF: van Page: Pagina View: Bekijk + SilverStripe\Forms\GridField\GridFieldVersionedState: + ADDEDTODRAFTHELP: 'Item is nog niet gepubliceerd' + ADDEDTODRAFTSHORT: Concept + ARCHIVEDPAGEHELP: 'Het item is verwijderd van de concept- en de live site' + ARCHIVEDPAGESHORT: Gearchiveerd + MODIFIEDONDRAFTHELP: 'Item heeft wijzigingen die nog niet gepubliceerd zijn' + MODIFIEDONDRAFTSHORT: Aangepast + ONLIVEONLYSHORT: 'Alleen op de live site' + ONLIVEONLYSHORTHELP: 'Item is gepubliceerd, maar verwijderd van de concept site' SilverStripe\Forms\MoneyField: FIELDLABELAMOUNT: Aantal FIELDLABELCURRENCY: Munteenheid @@ -149,8 +159,6 @@ nl: other: '{count} jaren' SilverStripe\ORM\FieldType\DBEnum: ANY: Elke - SilverStripe\ORM\FieldType\DBForeignKey: - DROPDOWN_THRESHOLD_FALLBACK_MESSAGE: 'Teveel keuzes in de lijst; een alternatief veld wordt getoond.' SilverStripe\ORM\Hierarchy: LIMITED_TITLE: 'Teveel onderliggende items ({count})' SilverStripe\ORM\Hierarchy\Hierarchy: @@ -323,7 +331,7 @@ nl: LOGOUT: Uitloggen LOSTPASSWORDHEADER: 'Wachtwoord vergeten' NOTEPAGESECURED: 'Deze pagina is beveiligd. Voer uw gegevens in en u wordt automatisch doorgestuurd.' - NOTERESETLINKINVALID: '

De reset link is ongeldig of komen te vervallen.

Je kan hier een nieuwe link aanvragen of het wachtwoord veranderen nadat je bent ingelogd.

' + NOTERESETLINKINVALID: '

De link om uw wachtwoord te kunnen wijzigen is niet meer geldig.

U kunt een nieuwe link aanvragen of uw wachtwoord aanpassen door in te loggen.

' NOTERESETPASSWORD: 'Voer uw e-mailadres in en we sturen een link waarmee u een nieuw wachtwoord kunt instellen.' - PASSWORDRESETSENTHEADER: 'link om uw wachtwoord opnieuw aan te maken' - PASSWORDRESETSENTTEXT: 'Bedankt! Er is een link verstuurd om uw wachtwoord opnieuw in te stellen (mits het mailadres reeds bekend is bij ons).' + PASSWORDSENTHEADER: 'Wachtwoord herstel link verzonden naar {email}' + PASSWORDSENTTEXT: 'Bedankt! Er is een link verstuurd naar {email} om uw wachtwoord opnieuw in te stellen, in de veronderstelling dat er een account bestaat voor dit e-mailadres.' diff --git a/lang/sv.yml b/lang/sv.yml index f2a18d659..88a3b3959 100644 --- a/lang/sv.yml +++ b/lang/sv.yml @@ -93,8 +93,6 @@ sv: DeletePermissionsFailure: 'Rättighet för att radera saknas' Deleted: 'Raderade {type} {name}' Save: Spara - SilverStripe\Forms\GridField\GridFieldEditButton: - EDIT: Ändra SilverStripe\Forms\GridField\GridFieldGroupDeleteAction: UnlinkSelfFailure: 'Du kan inte radera dig själv från den här gruppen, då du då kommer att förlora dina admin-rättigheter' SilverStripe\Forms\GridField\GridFieldPaginator: @@ -147,8 +145,6 @@ sv: other: '{count} år' SilverStripe\ORM\FieldType\DBEnum: ANY: 'Vilken som helst' - SilverStripe\ORM\FieldType\DBForeignKey: - DROPDOWN_THRESHOLD_FALLBACK_MESSAGE: 'För många relaterade objekt; använder fallback-fält' SilverStripe\ORM\Hierarchy: LIMITED_TITLE: 'För många barn ({count})' SilverStripe\ORM\Hierarchy\Hierarchy: @@ -303,5 +299,3 @@ sv: LOSTPASSWORDHEADER: 'Bortglömt lösenord' NOTEPAGESECURED: 'Den här sidan är låst. Fyll i dina uppgifter nedan så skickar vi dig vidare.' NOTERESETPASSWORD: 'Ange din e-postadress så skickar vi en länk med vilken du kan återställa ditt lösenord' - PASSWORDRESETSENTHEADER: 'Återställningslänk för lösenord skickad' - PASSWORDRESETSENTTEXT: 'Tack. En återställningslänk har skickats, förutsatt att ett konto med denna adress existerar.' From 2f9dae2c7136acca60bf9ea1158704abc11a49dd Mon Sep 17 00:00:00 2001 From: Aaron Carlino Date: Wed, 12 Dec 2018 14:10:59 +1300 Subject: [PATCH 3/3] Add changelog --- docs/en/04_Changelogs/4.1.4.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 docs/en/04_Changelogs/4.1.4.md diff --git a/docs/en/04_Changelogs/4.1.4.md b/docs/en/04_Changelogs/4.1.4.md new file mode 100644 index 000000000..d6e2fb3e5 --- /dev/null +++ b/docs/en/04_Changelogs/4.1.4.md @@ -0,0 +1,20 @@ +# 4.1.4 + + + +## Change Log + +### Security + + * 2018-12-10 [6f8dc77](https://github.com/silverstripe/silverstripe-graphql/commit/6f8dc779f39aebf79acbc0e2f3363705833b583b) Apply CSRF middlware API + * 2018-11-07 [fecedc2d9](https://github.com/silverstripe/silverstripe-framework/commit/fecedc2d98eeaaff6424fb59dc70ef6bdc6dc92d) Ensure that table names are escaped to prevent possible SQL injection (Robbie Averill) - See [ss-2018-020](https://www.silverstripe.org/download/security-releases/ss-2018-020) + +### Bugfixes + + * 2018-11-29 [59221e8](https://github.com/silverstripe/silverstripe-assets/commit/59221e8d74ac5e07b86a741e2709e0676130f7b4) Cache key cannot contain : chars, will happen when viewing from archive (Robbie Averill) + * 2018-11-21 [9ce6d91b7](https://github.com/silverstripe/silverstripe-framework/commit/9ce6d91b76e525a6fc81e02023e9e53cdf82e047) / TreeMultiselectField::objectForKey handles list of IDs correctly (Serge Latyntcev) + * 2018-11-16 [35c3a8c6](https://github.com/silverstripe/silverstripe-cms/commit/35c3a8c68db2660838dcd2ae5abd2bd1c3214af4) 'Search' text in default search form should be a placeholder (Robbie Averill) + * 2018-11-15 [b5bae137b](https://github.com/silverstripe/silverstripe-framework/commit/b5bae137bd341eeda3f4886f45fc8f8d657a9c4c) Redirect loop with multiple confirmation tokens present (fixes #8607) (Loz Calver) + * 2018-11-12 [15aaf9db9](https://github.com/silverstripe/silverstripe-framework/commit/15aaf9db9fe1679cf8b01b74fce3eee841278495) Fix a code style typo (Serge Latyntcev) + * 2018-11-08 [4b4fbabed](https://github.com/silverstripe/silverstripe-framework/commit/4b4fbabed5d70bf577e4b0d6fdbc9dab9da80451) TreeMultiselectField passes value 'unchanged' as null to ORM for 'ID' column key (Serge Latyntcev) + * 2018-10-15 [6de0fa0](https://github.com/silverstripe/silverstripe-versioned/commit/6de0fa087fe581b69a5978db82058490c44923b4) Fix codesniffer runs in Travis (Robbie Averill)