Early last week, I was giving a training course on Perl and talking a little bit about Perl objects - how all the internal logic that's associated with a particular type of data can be hidden within a source file so that the person writing the code to call it up only needs to understand what to put in, and what's returned. This characteristic is known as
encapsulation and it allows a medium to large sides application to be built and tested stage by stage leading to more robust code that can be easily maintained.
It's my norm during such training sessions to select a delegate at random, ask him what his hobby is, and write a class of objects based on that. During the demonstration, it shows that only the expert (hobbyist) need know the technical detail - all the users can simply build on his encapsulated skills. But last week, I rather took my delegate by surprise and he didn't suggest anything. "Fishing" I said and he looked glum; alas - he felt as I do that fishing is cruel as wasn't happy. So as a compromise, we switched to phishing.
Phishing (with a P-H) is the new term for sending out emails purporting to be from a major financial institution and asking users to log in, via a link in the email to the web site to update their contact details. Except that the web site link is NOT back to the real site of the institution, but rather back to a fraudster who gathers the personal information entered ... giving him access to his victim's identity and bank account. Truely a nasty business.
On Thursday evening, I went along to a meeting of a local business committee that I had been invited to join (a story for another blog, perhaps) and one of the subjects that came up there was
Phishing by phone. It seems that there's a line of fraudsters out there at the moment who are phoning people and pretending to be from their bank. "For security purposes" they're asking for details such as the 3 digit code printed on the rear of your card .... Oops.
I always try to be very careful when I'm phoned up by someone who says they're from the Bank. Alas, often they really are from the bank, but I've taken to asking them security questions in reverse ... for example, I might ask them about a recent transaction on my account rather than the other way around. Only rarely will they co-operate; even though THEY are the ones who phoned me and they must know they called the right number, they're not allowed to trust that they dialled correctly. Odd, isn't it, how there's one set of rules for them ...
How to break this mutual lack of trust, thrust on us by the phishermen? Well - if you ask your caller for their email address and insist that they give you one on the bank's main domain, I think that's a good step. You can then email them and ask them to call you back quoting something from the email. It's not going to save you against an "inside job", but it will mean that you've put them over a hurdle that should be easy enough for the genuine caller, but tough for the fraudster.
What a long way from my phisherman class, which can be found at
this link and you can learn all about on
this course (written 2006-02-05, updated 2006-06-09)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
Q909 - Object Orientation and General technical topics - Object Orientation: Composite Objects [477] Class, static and unbound variables - (2005-10-25)
[1345] Perl and Shell coding standards / costs of an IT project - (2007-09-11)
[1348] Screw it or Glue it? Access to Object variables - a warning - (2007-09-12)
[2170] Designing a heirarcy of classes - getting inheritance right - (2009-05-11)
[2641] Object Oriented Programming in PHP - (2010-02-19)
[2865] Relationships between Java classes - inheritance, packaging and others - (2010-07-10)
[2922] Getting the OO design write - with PHP a example - (2010-08-14)
[3142] Private and Public - and things between - (2011-01-22)
[3152] Jargon busting - (2011-01-30)
[3251] C++ - objects that are based on other objects, saving coding and adding robustness - (2011-04-17)
[3609] How do classes relate to each other? Associated Classes - (2012-02-12)
[3979] Extended and Associated objects - what is the difference - C++ example - (2013-01-18)
[4377] Designing a base class and subclasses, and their extension, in C++ - (2015-01-01)
[4394] Philosophy behind object design - and how I applied in to a Java example - (2015-01-14)
[4450] Deciding whether to use parameters, conditional statements or subclasses - (2015-03-05)
P218 - Perl - More Objects [227] Bellringing and Programming and Objects and Perl - (2005-02-25)
[246] When to bless a Perl variable - (2005-03-15)
[531] Packages in packages in Perl - (2005-12-16)
[588] Changing @INC - where Perl loads its modules - (2006-02-02)
[656] Think about your design even if you don't use full UML - (2006-03-24)
[831] Comparison of Object Oriented Philosophy - Python, Java, C++, Perl - (2006-08-13)
[930] -> , >= and => in Perl - (2006-11-18)
[1217] What are factory and singleton classes? - (2007-06-04)
[1320] Perl for Larger Projects - Object Oriented Perl - (2007-08-25)
[1435] Object Oriented Programming in Perl - Course - (2007-11-18)
[1664] Example of OO in Perl - (2008-06-03)
[1665] Factory method example - Perl - (2008-06-04)
[1819] Calling base class constructors - (2008-10-03)
[1949] Nuclear Physics comes to our web site - (2008-12-17)
[2427] Operator overloading - redefining addition and other Perl tricks - (2009-09-27)
[2651] Calculation within objects - early, last minute, or cached? - (2010-02-26)
[2717] The Multiple Inheritance Conundrum, interfaces and mixins - (2010-04-11)
[2811] Igloos melt in the summer, but houses do not - (2010-06-15)
[2876] Different perl examples - some corners I rarely explore - (2010-07-18)
[2972] Some more advanced Perl examples from a recent course - (2010-09-27)
[3097] Making Perl class definitions more conventional and shorter - (2010-12-20)
[3098] Learning Object Orientation in Perl through bananas and perhaps Moose - (2010-12-21)
[3377] What do I mean when I add things in Perl? - (2011-08-02)
[3581] Perl - calls to methods that use => - what do they mean? - (2012-01-16)
[3941] Building an object based on another object in Perl - (2012-12-03)
[4096] Perl design patterns example - (2013-05-20)
[4098] Using object orientation for non-physical objects - (2013-05-22)
[4356] Object factories in C++, Python, PHP and Perl - (2014-12-19)
[4366] Changing what operators do on objects - a comparison across different programming languages - (2014-12-26)
Some other Articles
The magic of -textvariableAdd a friendly front end with TkTwice is a co-incidence and three times is a patternFinding where the disc space has goneNOT Gone phishingKey facts - SQL and MySQLDanny and Donna are getting marriedRobust PHP user inputsJob vacancy - double agent wanted