Fix ADS-B sidebar deselect bug, ACARS XSS, and classifier dead code

- Clear sidebar highlights and ACARS message timer when stale selected
  aircraft is removed in cleanupOldAircraft()
- Escape all user-controlled strings in renderAcarsCard(),
  addAcarsMessage(), and renderAcarsMainCard() before innerHTML insertion
- Remove dead duplicate H1 check in classify_message_type
- Move _d label from link_test set to handshake return path

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
mitchross
2026-02-26 18:34:35 -05:00
parent 66f582f087
commit f652011366
4 changed files with 34 additions and 26 deletions
+3 -3
View File
@@ -63,8 +63,8 @@ class TestClassifyMessageType:
def test_sq_is_squawk(self):
assert classify_message_type('SQ') == 'squawk'
def test_underscore_d_is_link_test(self):
assert classify_message_type('_d') == 'link_test'
def test_underscore_d_is_handshake(self):
assert classify_message_type('_d') == 'handshake'
def test_q0_is_link_test(self):
assert classify_message_type('Q0') == 'link_test'
@@ -228,7 +228,7 @@ class TestTranslateMessage:
msg = {'label': '_d', 'text': ''}
result = translate_message(msg)
assert result['label_description'] == 'Demand mode (link test)'
assert result['message_type'] in ('link_test', 'handshake')
assert result['message_type'] == 'handshake'
def test_unknown_label(self):
msg = {'label': 'ZZ', 'text': 'SOME DATA'}