Tausendertrennzeichen ruiniert stillschweigend den eingegebenen Wert in den Einstellungen

Horrorgeschichte voraus.

Ein Community Manager hat uns kontaktiert, weil er festgestellt hat, dass die Zahl der Nutzer in seinem Forum nicht mehr so stark anstieg wie gewohnt.

Nach einiger Recherche stellten wir fest, dass viele neu registrierte Nutzer entfernt wurden, da sie als inaktiv eingestuft wurden.

Dies lag daran, dass die Einstellung clean_up_inactive_users_after_days auf 1 gesetzt war :scream:

Also klickte ich auf das Verlaufssymbol und sah, dass die Einstellung vor über einem Jahr von 730 (zwei Jahre) auf 1.095 (drei Jahre) geändert worden war.

Ja, Leute, wenn Sie ein Komma (oder einen Punkt, wie in nicht-englischsprachigen Ländern üblich) als Zifferngruppentrennzeichen in einer numerischen Website-Einstellung eingeben, werden stillschweigend(!) alle Zeichen hinter dem ersten Trennzeichen abgeschnitten. Um die Sache noch schlimmer zu machen, wird dies erst nach einem erzwungenen Seitenaktualisierung sichtbar.

12 „Gefällt mir“

Ich frage mich, ob andere Einstellungen, die hohe numerische Werte verwenden, auf diese Weise ebenfalls betroffen sind? :thinking:

6 „Gefällt mir“

Nun, ja.
Jede numerische Einstellung ist betroffen, und es gibt viele Tage, Minuten und generische Einstellungen mit hohen Werten

imap_polling_old_emails:1000
decompressed_theme_max_file_size_mb:1000
topic_views_heat_low:1000
secure_uploads_max_email_embed_image_size_kb:1024
maximum_session_age:1440
post_edit_time_limit:1440
composer_media_optimization_image_resize_dimensions_threshold:1920
composer_media_optimization_image_resize_width_target:1920
max_bookmarks_per_user:2000
topic_views_heat_medium:2000
default_other_new_topic_duration_minutes:2880
polling_interval:3000
topic_views_heat_high:3500
max_image_size_kb:4096
max_attachment_size_kb:4096
min_topic_views_for_delete_confirm:5000
max_form_template_content_length:5000
invite_link_max_redemptions_limit:5000
sitemap_page_size:10000
max_notifications_per_user:10000
short_progress_text_threshold:10000
auto_close_topics_post_count:10000
max_drafts_per_user:10000
anonymous_account_duration_minutes:10080
default_email_digest_frequency:10080
tl3_requires_posts_read_cap:20000
anon_polling_interval:25000
max_post_length:32000
tl2_post_edit_time_limit:43200
max_export_file_size_kb:50000
max_bulk_invites:50000
background_polling_interval:60000
decompressed_backup_max_file_size_mb:100000
search_enable_recent_regular_posts_offset_size:200000
default_other_auto_track_topics_after_msecs:300000
max_draft_length:400000
composer_media_optimization_image_bytes_optimization_threshold:524288

  suggested_topics_unread_max_days_old:
  suggested_topics_max_days_old:
  pending_users_reminder_delay_minutes:
  invite_expiry_days:
  purge_unactivated_users_grace_period_days:
  anonymous_account_duration_minutes:
  ignored_users_message_gap_days:
  clean_up_inactive_users_after_days:
  clean_up_unused_staged_users_after_days:
  show_time_gap_days:
  old_post_notice_days:
  returning_users_days:
  suppress_digest_email_after_days:
  disallow_reply_by_email_after_days:
  delete_email_logs_after_days:
  reset_bounce_score_after_days:
  delete_rejected_email_after_days:
  purge_deleted_uploads_grace_period_days:
  tl2_requires_days_visited:
  tl3_requires_days_visited:
  invalidate_inactive_admin_email_after_days:
  send_old_credential_reminder_days:
  search_query_log_max_retention_days:
  cold_age_days_low:
  cold_age_days_medium:
  cold_age_days_high:
  delete_drafts_older_than_n_days:
  delete_merged_stub_topics_after_days:
  default_other_new_topic_duration_minutes:
  retain_web_hook_events_period_days:
  revoke_api_keys_unused_days:
  revoke_api_keys_maxlife_days:
  revoke_user_api_keys_unused_days:
  revoke_user_api_keys_maxlife_days:

7 „Gefällt mir“

Danke für den Bericht, @RGJ! :pray:

Das ist in der Tat eine beängstigende Sache. Wir haben dies hier behoben, indem wir 1) nur numerische Eingaben in der Benutzeroberfläche zulassen und 2) alle Nicht-Ziffern im Back-End zur zusätzlichen Sicherheit entfernen.

11 „Gefällt mir“

Dies wird wieder geöffnet, es scheint, als ob sich die Dinge verschlechtert haben und sogar noch schlimmer geworden sind.

  • Gehen Sie zu Admin → Einstellungen → Grundlegende Einrichtung → vorgeschlagene Themen

Firefox auf dem Desktop

  • Geben Sie 5.0 ein, speichern Sie (kein Fehler) und aktualisieren Sie → Stellen Sie fest, dass es auf 50 gesetzt wurde
  • Geben Sie 5,0 ein, speichern Sie (kein Fehler) und aktualisieren Sie → Stellen Sie fest, dass es auf 0 gesetzt wurde

Safari auf iOS

  • Geben Sie 5.0 ein, speichern Sie (kein Fehler) und aktualisieren Sie → Stellen Sie fest, dass es auf 50 gesetzt wurde
  • Geben Sie 5,0 ein, speichern Sie (kein Fehler) und aktualisieren Sie → Stellen Sie fest, dass es auf 50 gesetzt wurde
4 „Gefällt mir“

Danke, Richard, für die Meldung. Ich kann das auf jeden Fall reproduzieren.

2 „Gefällt mir“

Danke für den Bericht, Richard! Ich kann auch nachvollziehen, was du beschreibst. Alles ist heute “by design”, außer dass 5,0 in Firefox zu 0 wird, was ein Bug ist. Das ist seltsam.

Es sieht so aus, als müssten wir uns das noch einmal ansehen, zumindest um das, was der Administrator sieht, zu aktualisieren, damit es korrekt ist und keine Trennzeichen enthält. Derzeit muss man seinen Webbrowser nach dem Speichern von Änderungen aktualisieren, um dies zu sehen.

Aber ich denke, wir können hier auch mehr tun, um dem Administrator zu helfen, diese Fehler zu vermeiden und nicht verwirrt zu werden. Es fühlt sich für mich falsch an, dass man “364,5 Tage” für suggested topics max days old eingeben kann und daraus 3645 Tage werden. Vielleicht sollten wir einfach keine Nicht-Zahlen in diesen Arten von Feldern zulassen.

6 „Gefällt mir“

Dies wurde in FIX: Do not allow , or . in site setting integer input by martin-brennan · Pull Request #27618 · discourse/discourse · GitHub behoben. Es ist nicht mehr möglich, etwas anderes als Zahlen in diese Felder einzugeben. Keine , oder . Trennzeichen mehr.

Zuvor haben wir die Eingabe für ganzzahlige Website-Einstellungen nur serverseitig bereinigt, was etwas verwirrend war, wenn Benutzer z. B. 100,5 eingaben und 1005 erhielten und dies nicht in der Benutzeroberfläche widerspiegelten.

Da wir nun native Zahleneingaben für diese Einstellungen verwenden, können wir die Erfahrung etwas verbessern, indem wir keine . oder , in der Eingabe zulassen, da es sich nur um ganze Zahlen handeln sollte, und eine Schrittgröße von 1 hinzufügen. Alle anderen Zeichen werden in dieser nativen Zahleneingabe bereits verhindert.

6 „Gefällt mir“

Dieses Thema wurde nach 3 Tagen automatisch geschlossen. Neue Antworten sind nicht mehr möglich.