Deprecated: Joomla\Input\Input implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /homepages/13/d380392445/htdocs/Jlive/libraries/vendor/joomla/input/src/Input.php on line 41

Deprecated: Return type of Joomla\Input\Input::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /homepages/13/d380392445/htdocs/Jlive/libraries/vendor/joomla/input/src/Input.php on line 170

Deprecated: Joomla\CMS\Input\Input implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /homepages/13/d380392445/htdocs/Jlive/libraries/src/Input/Input.php on line 31

Deprecated: Joomla\CMS\Input\Cookie implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /homepages/13/d380392445/htdocs/Jlive/libraries/src/Input/Cookie.php on line 21

Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in /homepages/13/d380392445/htdocs/Jlive/libraries/src/Uri/Uri.php on line 141
website - Macrotone Blogs

Macrotone Blogs

Macrotone blogs upon Joomla, our products and other matters.

Web Site Security

b2ap3 icon joomlaJust read a short article in the December issue of the Joomla Community Magazine titled ‘Ten Arguments That Threaten the Security of Your Website’ that is well worth reading.  It applies equally well to any web site but obviously the emphasis is upon Joomla.

The point about always keeping your website up to date with the latest patches in particular is one that I usually have to use every week, when looking at reported problems our component users are experiencing.   Usually the Joomla version is several if not many versions behind current.  Perhaps one might miss or not have time to always be upon the latest release but there is really no valid reason for being, in some cases over a year behind.  It is just asking for trouble.

I recommend it for a worth while read, it is reasonably short, but quite concise, and unfortunately so true in many respects.

Implementing Online Storage - DropBox

b2ap3 icon dropboxWe have been investigating the use of ‘Cloud services’ in particular for backup and synchronising devices and discovered just how easy it was to use.   One attraction is that there is a ‘free’ no cost option, and there appears to be a wide variety of providers.  We have used Amazon Cloud Drive, Google Drive and also Microsoft’s SkyDrive but they didn’t easily integrate into all of our environments and we wanted to automate the use of the service.

Before we jump straight in, one often asked question is what is online storage?  The answer is of course, that online storage, or "cloud" services as they're also known, it that it is ‘storage space’ help somewhere in the ‘internet cloud’ that appears (often) as a virtual hard drive that's shown on your desktop and linked directly via the internet to the suppliers online space.  Exactly where it is stored is not really important, just that it is accessible.

They are easy to use, as one just opens the folder on the desktop and copies or pastes a file (or files) whether they be documents, music files, photos etc., and the files get synchronised across to the ‘online’ space.  If one has multiple devices (or machines) then each device, with the ‘providers’ software installed can see and access to files.

It is also possible to ‘share’ the files with other users as well,  once they've installed the same service.

Security

Data security is the number one concern since one is relying on the service to keep your files and documents secure.  If your account is hacked, your files are immediately available. However, there are several things you can do to prevent this:

  • Frequently change your passwords and don't use the same passwords as your email accounts. As a lot of these services require you to use your email address as your ID, it makes it easier for the bad guys to crack your password.
  • Use some encryption upon the files which is encoded with a password for sensitive files stored on the ‘online service.

And of course the ‘old’ standards still apply:

  • Install (free?) antivirus software and malware software, and keep it up-to-date.
  • Avoid opening any links or attachments that could be potential security risks.
  • Beware of phishing emails and any messages from unknown senders that request your bank details.

Note: Other ‘online storage’ users usually can't see your private files unless one deliberately invites them or places the files in the "public" (or shared) folder.  As expected everything in your public folder is, by definition, accessible to anyone.

As we said at the beginning we wanted to specifically concentrate on the ‘offsite’ storing of ‘backups’, in particular our web server.  Fortunately we make use of Akeeba Backup Pro, which allows easy integration into a number of providers.  We chose to look specifically at DropBox which since its launch in 2008 has become well know with techies, and has become one of the biggest names in online storage. It is also available upon a number of devices and has a simple, user-friendly interface. It can be downloaded on to PCs, Macs, iPads, iPhones, BlackBerrys and Android devices.  It also has an online version of the service, which you can use on any PC where Dropbox is not installed - just log in online.  IT is this flexibility that particularly appeals.

It initially comes with 2GB of space, but this can be boosted by introducing ‘new’ friends to Dropbox.  With every new referral, you'll both gain an extra 500MB, up to a maximum of 18GB. If more is still required a monthly subscription can be added to the account.  This was more than suitable for our requirements so we read the documentation on the Akeeba site and proceeded to set up Akeeba Backup to create a backup and ran a test.  It worked perfectly, so much so that we thought we had made a mistake, but the site backup was in the Dropbox account. The automation was then set up using a cron ‘daemon’ on our web site and left to see how it performed overnight.  Checking the following day showed the backups were working well.

Next we looked at the synchronisation process between devices.  The only snag we found was that some of our devices were a ‘little long in the tooth’ and the Dropbox software required ‘up to date’ operating system versions, which were of course not available for  some of the hardware.  Apart from that the processes work well, with only the expected delays caused by the network performance.

The next thing we looked at was synchronising with our NAS, (again another device, albeit one with certain characteristics). Again installing the software package upon the NAS went smoothly just as explained in the NAS documentation., and it then automatically created a folder on the NAS and saved all the files onto the NAS from Dropbox.

So we achieved what we set out to do.  Automatically created a web site backup (via cron), and transferred it to the ‘cloud Dropbox service’. Then on our NAS box it automatically synchronised the Dropbox backup files to out local NAS storage. Job done.

All in all it was as ‘easy as pie’ and we recommend it.  In fact we wonder why we didn’t do it before, it just ‘worked’!

It is easy to see how beneficial this service could be to someone at or going to University who wanted to preserve their work in the unlikely event  of an accident or possible theft of their personal computer.

Download it now: Dropbox

Problems getting a front end wget/curl cron working.

joomlaIn completing the testing of our ‘cron’ addition to a Joomla component we experienced a small problem, which is worthy of noting especially as we have not seen any mention of the problem anywhere else on the web.

The problem manifested itself as the apparent ‘inactivity’ when a front end web page was accessed via wget, curl or lynx.  This was very puzzling since accessing via the usual web browser appeared to be working.  After much testing we discovered that wget, curl etc. were indeed accessing the page but the underlying actions that the page was intended to run were not occurring.

To cut a long story short, we discovered that the pages were being served up by the ‘page cache’.  In the normal course of events this is what one wants to occur, however with a ‘cron’ page we want the underlying actions to occur.  It was necessary to disable the caching of the specific accessed page and this completely resolved the problem.

What was interesting was that this specific problem was not mentioned on any sites on the web, despite extensive searches. Either everyone else is aware of the problem, possible but unlikely, or equally unlikely no-one else uses page caching.

As part of our investigations we also tried out a well known ‘free cron’ service.  This didn’t help us resolve our problem, but did make us aware of possible ‘redirections’ that may be caused by the use of ‘SEF’ components on a web site. It was necessary to specify the ‘redirection URL’ rather than the ‘original URL’ to the service. Not a specific problem but one of those things to be aware of. 

Considering Metadata for our Joomla extensions

The use of Metadata within web pages to provide a ‘richer’ and more tailored data structure is not new.  The term metadata is defined as "data about data". The term is however slightly ambiguous, as it can be used for two fundamentally different concepts (types). Structural metadata is about the design and specification of data structures and is more properly called "data about the containers of data"; descriptive metadata, on the other hand, is about individual instances of application data, the data content. In our context we are really talking about ‘data about data content’.

We say it is not new because many years ago we worked upon implementing some of the ‘Dublin Core’ metadata into some specific sites that we were working with.  The focus now seems to be the use of the vocabularies as defined by ‘schema.org.  This is no doubt influenced by the fact that it was promoted by Microsoft and Google themselves.

Deciding to implement it is not for the faint hearted especially if the ‘intended’ target is composed of entities that do not easily fit into one of the defined ‘standards’.  As an example we have looked at our ‘Problem/Issue/Bug Tracking’ application.  At first glance it looks to be a ‘Product’, but the products are those that are sold, or available to hire etc.  The output from our ‘Issue Tracker’ is a set or series of ‘reports’ which describe reported problems or improvement tasks for a ‘product’ hence perhaps they should instead be an ‘Article’.  Here again they do not really fit into the current ‘standard’.  The best we can come up with would be a ‘CreativeWork’, and more specifically a ‘SoftwareApplication’, but even here we would need to add some specific custom extensions, which is possible with ‘schema.org’ to more accurately reflect information that should be in the meta tags. We require the metadata to describe the output from the application and not the application itself.

At the moment the jury is still out as to whether we wish or desire to add an automated mechanism to our application to generate the meta data automatically.  We will probably continue to monitor the situation before deciding whether to implement it as a feature or not, especially as it is not certain whether including it will improve the page rankings within Google, since the exact details of the algorithm used by Google is their secret.

Implementing Smart Search

b2ap3 icon joomlaWe have changed the search mechanism on the site from the standard ‘Joomla Search’ to make use of ‘Smart Search’.

This will hopefully enable a ‘richer’ environment for our visitors.  The implementation itself was relatively painless. Our own Issue Tracker component, and the standard supplied components such as content etc. worked flawlessly ‘out of the box’.  In additional a finder plugin for our Blog was also found and implemented very easily.

Only our Forum component gave rise to any problems. It was necessary to prevent sh404SEF from interfering in the URL generation so that the Forum used the ‘standard Joomla router’ for its links. This also involved removing from the sh404SEF component all history of the forum component. Once this was done then it was plain sailing.

The only point that should be emphasised is that the ‘Smart Search’ does not make use of ‘wild card’ characters.  The ‘old’ Joomla search mechanism used a very primitive method of searching which relied on the FULLTEXT search provided by the database. This was very inefficient but provided a simple means of handling wildcard search queries. Smart Search provides an auto-complete feature which is effectively a wildcard search of terms in the index, but full wildcard searching is not supported due to the potential for crippling the server if the feature were to be abused. In most cases wildcard searching is used to cater for variations in a search term. For example, searching for "juggl*" in order to catch references to "juggling" as well as "juggler". Smart Search attempts to avoid the need for wildcard searching by instead supporting word stemming where words that have the same stem are considered equivalent so that searching for "juggler" will also retrieve instances of "juggling" without the need to use wildcards.

CSS: text wrapping in a table cell. word-wrap

The subject of wrapping text in a cell with CSS is reasonably well documented, and we recently investigated a specific case where the use of the standard ‘options/commands’ didn't seem to be having the desired effect. This was complicated by the fact that the target cell was a variable width.

The obvious commands are:

word-wrap  - which can take the one of two optional parameters:  ‘normal’ which will break words only at allowed break points; and ‘break-word’ which allows unbreakable words to be broken.

word-break – which has three possible values: ‘normal’ which breaks non-CJK scripts according to their own rules; ‘break-all’ where lines may break between any two characters for non-CJK scripts; ‘hyphenate’ where words may be broken at an appropriate hyphenation point.

Despite ‘playing’  with these the text was not breaking at the end of suitable values.

Continue reading

Joomla JCE editor problems

jceFor some time I have been experiencing a few problems with the changing  of formatting within articles etc.  Typically these showed themselves as repeating space characters being converted to '’non breaking spaces’ (&nbsp). and then after saving a second time being converted to ‘A caret’ characters.

Web searches showed that many others have seen these types of problems as well, although there were no definitive solutions, despite many suggestions that didn’t work when we tried them.

Other examples we have seen include occurrences such as the removal of <br> tags by <p> tags enclosing a non breaking space character were also seen.

These tend to become very annoying over time so we think we might now have a solution that seems to work for us.

To resolve <br> & <br clear="all" /> tags getting deleted or converted to <p></p>

Go to components >> JCE >> Editor Global Configuration >> Formatting and Display >> Container element >> Change to : No container and parameter on enter

To resolve Contiguous (repeated) spaces getting deleted.

Go to components >> JCE >> Editor Global Configuration >> Cleanup and output >> Entity Encoding >> Change to Named

To ensure all <br> tags are retained over HTML cleanup.

Go to components >> JCE >> Editor Profile>>Default >> Editor Parameters >> Advanced>>Extended Elements>>Add: br

Joomla - Breadcrumb links

b2ap3 icon joomlaWe recently noticed a peculiarity on our site with some breadcrumb links containing certain entries which when clicked displayed a page in ‘Joomla Blog’ format containing articles which generally would not be seen, except under specific circumstances.  Nothing security related in our situation but potentially could be.  These pages were certainly not explicitly created on our site and were obviously generated ‘on the fly’.

Using the standard Joomla breadcrumbs generation there is nothing specific that one can configure/change to resolve this type of problem so it was down to some possibly lengthy investigation as to the cause(s).

To resolve the problem we discovered that the URL being used was from a SEF plugin/component (in our case SH404SEF) which contained several aliases and it was necessary to remove the specific URL (plus aliases).  Then once we had done this and  purged the page cache, the page and its breadcrumb links displayed as correctly as expected without the additional link that had been present before.

[Note: If there are several aliases for a speciifc SH404SEF URL then one might possibly be able to choose one of the alternative aliases which no not show the 'additional unrequired' breadcrumb link, but this is not necessarily the general situation and may involve some trial and error.]

Before reaching this point we did wonder about how the link to the page from an article had been created, having previously been selected from the article, so we changed it to be via the menu link.  This is not really required, but the observation is that a name(s) of the 'additional/unwanted' breadcrumb link(s) related to the category to which the article was attributed and it does make the site a little cleaner perhaps. 

On a large site with many pages such a situation may be difficult to discover and there may be many such situations, but we are unaware of any current method to discover these other than careful page inspection.  It was bad enough on our modest site, let alone a really large site.

Web slow down?

spamI have previously posted an entry on the latest version of Firefox 19.0.2 where I mentioned that there were speed problems accessing certain web sites, including but not restricted to the BBC web sites.

The following article was posted the other day which may go some way to explaining my observations. Access to the article may be slow, but it describes how a row between a spam-fighting group (Spamhaus) and hosting firm (Cyberbunker) has sparked retaliation attacks affecting the wider internet.

Detected intrusion attempts again

We are seeing a persistent number of web attacks on our site by hackers which seem specificaly designed to attack a WordPress site.

These attacks take the form of Remote File Intrusion attempts. These are where hackers try to force a vulnerable extension into loading PHP code directly from their server. This is done by passing an http(s):// or ftp:// URL in their request, pointing to their malicious site.

They are using Wordpress plugins in the main, so if you are a WordPres site this is something be to aware of. The source of the attacks is a little varied but the IP addresses tend to indicate the US and Canada, but of course these may be compromised addresses hiding the real source.

Go To Top

Joomla! Debug Console

Session

Profile Information

Memory Usage

Database Queries