Если Вы только заботитесь о приблизительно 1 десятичном разряде точности (как в Ваших примерах), можно просто сделать:
("%.1f" % i).replace(".0", "")
Это преобразует число в строку с 1 десятичным разрядом и затем удалит его, если это будет нуль:
>>> ("%.1f" % 0).replace(".0", "")
'0'
>>> ("%.1f" % 0.0).replace(".0", "")
'0'
>>> ("%.1f" % 0.1).replace(".0", "")
'0.1'
>>> ("%.1f" % 1.0).replace(".0", "")
'1'
>>> ("%.1f" % 3000.0).replace(".0", "")
'3000'
>>> ("%.1f" % 1.0000001).replace(".0", "")
'1'
С точки зрения постоянных клиентов, я думаю, что степень обслуживания клиентов в этой компании должна быть публичной. Их действительно не волнуют какие-либо дыры, которые могут раскрыть личные данные клиентов. Итак, они действительно должны быть наказаны. Но обнаружение дыр повредит не только им, но и их клиентам.
Если вам заплатили за аудит безопасности, у вас есть этическое право ни публиковать информацию о том, что вы нашли, ни использовать ее каким-либо образом. Кто доверит эксперту по безопасности раскрыть то, что он нашел даже спустя годы? Я думаю, ты ничего не можешь сделать.
Найдите нужного человека в компании.
Если нет подходящего человека, соберите аудиторию с максимально возможным высшим руководством и объясните проблему несколькими простыми предложениями нетехнического характера.
«Каждый заказчик, который когда-либо пользовался этой информацией об услугах, может быть украдено сегодня, прямо сейчас, частично осведомленным человеком. Я оцениваю вероятность того, что это произойдет в% 50 в следующем году. Если / когда это произойдет, это будет стоить 5 миллионов в судебных процессах, 1 миллион сверхурочных, n миллионов репутации, n миллионов будущих потерянных клиентов / заказов ».
Это сработало для меня в прошлом, и если вы сделаете это, вы сделаете все возможное, чтобы поступить правильно.
Есть две школы мысли: ответственное раскрытие информации и полное раскрытие информации. Но если вы сделали это вовремя (оценка) вашей компании, то я думаю, что вы строго обязаны не раскрывать публично.
Я бы записал первый такой инцидент как ваш учебный опыт. Вы и клиент (и ваше руководство) не прояснили пределы вашей ответственности.
Я думаю, ваш настоящий вопрос: «Как мне предотвратить повторение этого снова?»
Я уже сталкивался с подобным сценарием в прошлом. Хотя я наткнулся на дыру, а не за то, что мне заплатили за проверку на проникновение или аудит безопасности.
У меня возникло серьезное искушение опубликовать подробности в наших государственных газетах, а затем в списке рассылки с полным раскрытием информации (вместе с контактами в правительстве), когда нет Действия были предприняты через 2 года, но было решено, что данные слишком опасны для раскрытия (потенциально) злоумышленников.
Однако трудный выбор.
Если это частная организация и вы считаете, что выполнили условия своего контракта с ней, я бы сказал, что вы сделали все, что могли.
Если же это организация. которые получают государственное финансирование любым способом, я бы предложил дать им еще один шанс, а затем обратиться в (техническую) прессу.
С практической точки зрения, вы обнаружили дыры в безопасности и предупредили их. Если они не хотят их исправлять, это их дело.
Возможно, директор по маркетингу не тот человек, который имеет дело с этой информацией. Вы можете попробовать использовать свои дипломатические навыки и связаться с высшим руководством. Но не вините никого. Потому что это приведет к обратным результатам.
Я бы не стал ничего продавать конкурентам, потому что это наверняка доставит вам много проблем.