It was important to fix this bug. It can let someone to prevent the esp8266 from scanning for APs just by sending beacons containing specifics characters in AP name.
Those characters will make the browser to misunderstand the json result of APScan.
For exemple if you put an anti-slash at the end of an AP name, you're browser will think that the " character of json delimitation is escaped and will interpret it as a ascii character.
-Created a sanitize method. APScan::sanitizeJson(String) to escape specific characters.
-SanitizeJson is used each time the result of getAPName is sent using Json data format.
- Removed _ssid.replace("\"", "\\\"")
It's important to not sanitize Ap names before saving them into a limited 33 chararacters array. Sanitize an AP name increase his size and so it can potentially decrease his final size when casted to a 33 chars array.
- Moved /web_server/ to /esp8266_deauther/data/ folder in order to use SPIFFS to serve content (new INSTALL procedure, check the README)
- Enabled l10n (built-in support for English, French, Chinese Simplified, contributions welcome!
- Implemented @rubfi's #638 pull request to make vendorlist update-able
Implemented on request from @crystalg21 #624, logs can now be extracted from the web UI by accessing http://192.168.4.1/log.txt
Some TODOs if this PR is accepted:
- Output log to serial
- Add links to the web UI
- A WiFi connection can't be 'loose' (a cable could be though) but can be 'lost' (*to lose*)
- Adverbs usually immediately precede the words they modify
Every time a page is (re)loaded, the ESP8266 has to send the stylesheet and javascript before the page loads. Although this is minimal (20ms in dev tools Networks pane), it can improve page load speeds when the client device is spamming network connectivity check requests.
Adding the `Cache-Control` headers makes the browser store these files in memory (for 300 seconds, could be increased). The same could be done for the HTML files, but that would allow the pages to load even when not connected to the ESP8266.