Итак, у меня есть этот веб-API с разными конечными точками для вызова разных значений json, например:
https://example.com/api/values
https://example.com/api/othervalues
Я только добавляю uri https://example.com/api/ в сетевой запрос в белый список Cordova, и это работает хорошо и может звонить с обеих конечных точек.
Однако
При попытке сделать то же самое с CSP (http://www.html5rocks.com/en/tutorials/security/content-security-policy/#reporting) (https://software.intel.com/en-us/articles/cordova-whitelisting-with-intel-xdk-for-ajax-and-launching-external-apps) просто не будет работать при сборке или предварительном просмотре приложения (iOS), но работает внутри эмулятора.
Это код, который я использую, который не работает, но работает в эмуляторе на компьютере.
<meta http-equiv="Content-Security-Policy" content="default-src 'self' https://example.com/api/valuest/; img-src 'self' https://example.com/api/othervalues; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com/; script-src 'self' 'unsafe-inline'">
И этот работает везде, он же сборка, эмулятор, предварительный просмотр приложения.
<meta http-equiv="Content-Security-Policy" content="default-src 'self' * https://example.com/api/valuest/; img-src 'self' https://example.com/api/othervalues; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com/; script-src 'self' 'unsafe-inline'">
Ищите * внутри src по умолчанию, это единственная разница, поэтому, очевидно, есть что-то, что не разрешено запускать в первом теге <meta>
, но я не могу понять, что именно. Я буквально пробовал все остальные директивы ресурсов, и единственная работающая — это добавление * внутри src по умолчанию.
Сейчас
Теперь я рассматриваю возможность использования белого списка Cordova и пропуска политики безопасности контента. Я не очень разбираюсь в безопасности, но... может этого недостаточно? Приложение сможет работать только на мобильных устройствах (а не на компьютере), что, как я полагаю, должно затруднить атаку? Насколько я понимаю, чтение по этой ссылке (http://www.html5rocks.com/en/tutorials/security/content-security-policy/#inline-code-considered-harmful ), использование CSP намного лучше, только если я запрещаю встроенные сценарии, в противном случае он служит той же цели, что и белый список кордовы?
Если у кого-то есть какие-либо советы или советы по этому поводу, я был бы очень признателен за вашу помощь, спасибо!