Довольно частая подстава, которую я наблюдаю на созвонах и прочих зумах заключается в том, что докладчику у которого расшарен экран надо быстро куда-то зайти, и он открывает свой текстовый файл на десктопе и копирует оттуда пароль, ибо такая привычка и традиция.
Может быть он бы его и запоминал, если бы к него не было шесть систем и в каждой надо менять пароль раз в месяц.
Так получается, что безопасность у нас в безопасности, хоть и держится на честном слове.
Один из простейших способов от этого избавиться — это завести для таких паролей BAT-файлик/ярлычок c примерно такой командой:
echo MySuperPass123$@|clip
Теперь для получения пароля нужно тынцнуть в этот ярлычок и текст появляется в буфере обмена.
Безопасность от этого не становится менее безопасной, файл с паролем по-прежнему лежит на рабочем столе, но зато ни у кого нет шанса его подсмотреть.
С другой стороны в одном текстовом файле можно хранить десятки паролей, а места на рабочем столе не хватит для всех ярлычков.
Это конечно не избавляет вас от необходимости вести действительно важные пароли в какой-то отдельной защищенной штуковине. Просто у этих штуковин тоже свой компромисс между безопасностью и удобством.
Вот иногда живёшь так, думаешь на автопилоте, что если начал новый LUW то это как портал в новую вселенную:
А вот нифига, LUW может быть и новый, стек вызовов начинается с %_RFC_START, однако определённые в TOP-инклюде глобальные данные группы функций никак не инициализируются:
Вот и получается, что LUW и Internal session это не одно и то же.
Это всё тянется из тех старинных времён, когда SAP работал в терминале и выглядел примерно так:
С тех пор мало что поменялось внутри, экраны устроены та же, всё фиксированной ширины, замкнутый цикл PBO/PAI. Поэтому для значения TRUE используется крестик [X], потому что именно так он отражался на терминале.
На экране пробел от подчёркивания отличить нельзя, поэтому поля содержащие только пробелы и подчёркивания считаются пустыми. И если поле обязательное, то в него нельзя ввести только символ подчёркивания.
Со знаком «равно», видимо, тоже связана какая-то история, могу вообразить, что на некоторых системах ещё не было такой кнопки как F4, или она использовалась для других целей, поэтому для доступа к средству поиска использовалась клавиша =, почему нет.
С восклицательным знаком наверно тоже связана древняя легенда, допускаю что Ctrl+A ещё не изобрели, поэтому разработчики придумали такой «трюк», чтобы проще стирать данные в поле.
Хожу на LinkedIn просто чтобы поиграть в Queens и Crossclimb (https://www.linkedin.com/games/), вот такое у меня daily routine, рекомендую.
И пока я входил и выходил, то случайно первым постом на странице выпал чей-то текст в две строчки с тезисом, что «Entry level job» должен иметь нулевые требования к опыту.
Просто так, безапелляционно, без оговорок, без контекста, с потолка.
И у поста десять тысяч лайков, тысяча комментариев и тысяча репостов. И все там такие дружно ему поддакивают.
Вот думаю что это? Та самая «левая повестка» или просто ограниченность кругозора?
Единственный ответ, который у меня есть: «Обсудите это с вашим терапевтом с нулевым опытом», но на LinkedIn так не принято.
*----------------------------------
* (с) Слепаков
*----------------------------------
DO.
Это был тяжелый год
Был он тяжелей, чем тот
Неожиданно нам всем
Много он принес проблем
Но приходит новый год
Он нам счастья принесет
И я верю через год
Дружно скажет наш народ
ENDDO.
Если кратко, то может быть и можно, но всё очень-очень сложно.
Тут вопрос в концепции.
С одной стороны, любая программа ABAP работает только на сервере. SAP GUI работает на компьютере пользователя и отвечает только за показ результата работы и ожидание дальнейших инструкций от пользователя. Пользователь видит результат, нажимает кнопку, SAP GUI передаёт нажатие кнопки на сервер, серверная программа снова отрабатывает и даёт новый результат, отправляет его на просмотр пользователю.
Это круг PAI-PBO, который никогда не прекращается.
BTW, с точки зрения архитектуры SAP GUI — это «тонкий клиент», так как никакая прикладная логика на нём не работает, только красивое отображение и приём-передача информации на сервер и обратно.
С другой стороны, список последних введённых значений хранится только на SAP GUI (то есть на компьютере пользователя), и сервер ничего не знает про это. Так же как и не знает какого цвета кнопки. Вы можете сами включить в SAP GUI любую тему и поменять все цвета, но на работу ABAP это никак не повлияет, и сервер про это никогда не узнает.
С точки зрения ABAP-сервера, нет никакой разницы, выбираете ли вы значение из истории, или вводите его вручную заново, или вставляете из буфера обмена.
На практике существуют некоторые пользовательские функции, когда необходимо взаимодействие ABAP-сервера и SAPGUI-клиента:
Оно реализовано очень нетривиально внутри, можете убедиться.
Если поглядеть в класс CL_GUI_FRONTEND_SERVICES, например в метод CALL_METHOD, то окажется, что ничего просто так сделать не получится.
Вообще большой вопрос — умеет ли SAP GUI отдавать такую информацию или нет, документировано это или нет. В классе не видно ни одного метода, отдалённо напоминающего требуемую функциональность.
Тупик, приехали.
На крайний случай, если очень-очень хочется, чисто теоретически, можно найти на клиенте (компьютере пользователя) файл, куда пишется история, загрузить его в ABAP и распознать.
Этот файл пишется в моём случае в формате SQLite, который неизвестно как разбирать, напрямую в ABAP его анализ невозможен. Ещё неизвестно, что за защита на нём стоит, потому что внутре данные покорябаны:
Тоже приехали.
На моей памяти это задача одна из самых невозможных. Хотя казалось бы…
Снова ничего нового, кажется, но ведущие соскочили на привычные рельсы, у меня было стойкое ощущение дежа-вю. В целом согласен со всеми участниками, но у меня своя правда.
Я в текущих своих условиях вижу один довод «за» — если есть процедура Code review, то я пишу чище.
Кстати, устоявшегося термина на русском языке так и не сложилось. Википедия предлагает сразу четыре варианта:
Просмотр кода, рецензирование кода, обзор кода, ревизия кода
Позвал как-то индийский руководитель всех русскоговорящих ребят-программистов на совещание. Говорит: “Давайте писать код так, чтобы он был понятен всем, как индийский фильм без перевода!” Русские программисты ответили: “Хорошо, но только если комментарии к коду будут как русские субтитры — короткие и ясные.” В итоге, они создали самый эмоциональный код в истории — каждая функция начиналась танцами и заканчивалась мудрой поговоркой.
Позвал как-то индийский руководитель всех русскоговорящих ребят на ужин. Говорит: “У меня для вас есть специальное блюдо.” Ребята в недоумении, думают: “Наверное, карри или что-то экзотическое.” Приходят, а на столе – пельмени. Индийский руководитель говорит: “Я слышал, что это ваше традиционное блюдо, решил удивить!” Ребята в ответ: “Ого, доктор, вы нас удивили… но где же специи?” Руководитель с улыбкой: “Специи? В пельменях? Нет, я решил, что в этот раз специи – это ваше присутствие!”
Позвал как-то индийский руководитель всех русскоговорящих ребят-программистов на совещание и говорит: “У нас есть две новости — хорошая и плохая. С какой начнем?” Ребята в один голос: “С хорошей!” Глава: “Наша команда выиграла большой международный тендер!” Все аплодируют, радуются. “А теперь плохая новость,” — продолжает глава, “тендер был на лучшую программу для автоматического перевода с индийского на русский, и теперь вам всем придется учить хинди.”