Спасибо, заработало! Странно, раньше у меня в другом проекте вроде и float работал... Я думал, там главное, больше или меньше нуля. А оно вон как оказывается.
Но с return вы всё же не правы, сейчас проверил - работает и так, поскольку там по ссылке передача идёт.
xmoonlight: в теории - да, но это надо очень хорошо знать систему: какие модули, что качают, как этим воспользоваться.
Вот вам ещё простой пример: на моём древнем Android 2.3 не работает YouTube, просит обновить "сервисы Google Play". А при попытке их обновить они начинают пытаться что-то подгружать... И в итоге стандартный лаунчер от Сони раз в 15-20 секунд просто аварийно завершается. Запускается снова - и опять аварийно завершается. Приходится очень быстро идти в настройки, и останавливать этот процесс. Ну и после - удалять обновление.
Я это к чему - даже то, что качает, порой не может это делать так, чтобы не обрушивать систему. То есть эксплойты придётся искать в старых версиях модулей, а не в последних.
xmoonlight: кстати, этот кто-то должен быть автором приложения, установленного у меня в телефоне, или в сговоре с ним, что исключено. Я кстати даже от обновлений давно отказался по причине падения производительности в новых версиях (а кое-где из-за смены иконки/дизайна интерфейса).
John Smith: а вот интересно кстати, для самого банка есть какие-то риски такого анализа? Что можно сделать, обладая знаниями и инструментами? Я так понимаю, инициировать перевод от лица кого-то в свой адрес всё равно ведь не выйдет (токены при авторизации формирует сервер в любом случае)?
Неужели так велика вероятность поставить приложение со сканером файлов? Оно ведь ещё и формат базы данных с паролями должно знать, и мастер-пароль тоже (база обычно шифруется). Вы сейчас запугаете человека до смерти, а на самом деле зря, я уже два с лишним года живу с рутом, и всё окей (правда, пароли на смартфоне не храню, ибо нет потребности, и приложений новых не ставлю никаких давно).
У меня потребность в root доступе была, и ещё какая. Без него не удалить предустановленный производителем софт, например. Для SonyEricsson Pro, например (где всего 512 Мб встроенной памяти на всё про всё) это возможность удалить McAffee Security и Moxier (почтовая программа), что освобождает кучу места. Не говоря уже о возможности удалять системные компоненты, принудительно ставить любимую версию Google Play, полноценно использовать Titanium Backup со всеми его возможностями, и прочее, и прочее.
На более новых трубках без рута тоже удаляется далеко не всё, к слову.
Ankhena W: спасибо, я просто думаю, стоит ли изучать эту модную технологию.
Как я понимаю, табличная вёрстка - это плюс в плане простоты и универсальности, хоть и уменьшает свободу для дизайнера (если изначально рисовать под сетку). А вот по второму пункту полностью согласен... Довелось однажды сайт, собранный на Бутстрапе, руками допиливать. Тот ещё кошмар. Огромная вложенность, невнятные по смыслу CSS классы... А ещё 2-3 версии JQuery, подключенные сразу, и 3-4 неиспользуемых плагина, подключенных "про запас", и дающих ещё больше тормозов :)
Товарищи, я понимаю, что телепаты в отпуске, но может, кому-то интересно сделать "реверс-инжениринг" их протокола (чтобы понять, как там что работает)? Я исходники с радостью скину, если у кого-то есть интерес...
Neoline: ну вот здесь как раз не соглашусь, гадость подцепить шанс равен почти нулю. Каким образом?
Грамотно настроенный сервер не даст исполнить ничего из директории загрузок, это раз. Проверка типа загружаемого файла - это два (в случае с картинками - чтение MIME, попробовать её поресайзить, плюс опять же, веб-сервер не даст исполнить картинку как скрипт). Более сложные файлы - тестить на вирусы умными модулями, если сложность системы того требует (но в любом случае, никакие веб-скрипты не пропускать).
Про изолирование процесса веб-сервера - слышал немного, но не очень разбираюсь. Да, думаю, от чего-то поможет. Хотя если шелл удастся запустить как системный UNIX процесс - тут уже ничего не поможет... А дать команду на запуск, например, через PHP-скрипт, залитый нами же. Но мы же скрипты блокируем, верно?)
Про "запретить выполнение вообще php-кода из htaccess" - ну так кто же нам как злоумышленнику даст грузить htaccess, или модифицировать уже имеющийся? Опять утопия :)
Если злоумышленник работает в компании-вебхостере, и имеет доступ ко всем файлам - тут опять же, снявши голову по волосам не плачут.
Neoline: надо будет проверить. Но я точно знаю, что в PHP есть возможность запрещать для исполнения отдельные функции. Кроме того, чтобы это сделать, надо получить доступ исполнить PHP код. Пока злоумышленник не зальёт шелл - у него ничего не выйдет.
А если есть шелл - можно наверное и ещё проще файлы сессий слить. Кроме того, возможность залить шелл - это уже дырявый код (в данном случае к авторам CMS вопрос), и криво настроенный хостинг, опять же.
Андрей Федоров: я знаю, что используют. Ну это же для небольших набросков на JS, или демонстрации CSS трюка. А там гора разметки совершенно не удобочитаемая, плюс стили, часть из которых во внешнем файле, а часть заинлайнена... Это большой проект, и написанный не везде "красиво" и хорошо. Мне было лень выдирать оттуда куски, да и сложно было выдрать, сохранив полностью внешний вид.
Андрей Федоров: вы сами начали меня критиковать и пытаться искать пробелы в моих знаниях, хотя я просил совсем не об этом. Безопасность Вашу я уважаю, даже не думал пытаться подкладывать какую-то "свинью". Но если для вас обычная страничка с JS опасна... Ну тогда я не знаю, что тут сделать :)
JS код, к слову, удалённый, а веб-страница локальная - ещё одна причина, почему он ни к чему доступа не имеет. И кстати, можно его вообще начисто вырезать, хуже не будет. Всё равно сплошные эксепшены сыпятся. Моя вина, что я его не убрал, да. Боялся, что может как-то внешний вид страницы пострадать, если убрать скрипты совсем.
Но с return вы всё же не правы, сейчас проверил - работает и так, поскольку там по ссылке передача идёт.