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