在HTML中使用这样的注释:
<!-- @author: Some Name -->
<!-- @address: some@email.com -->
Run Code Online (Sandbox Code Playgroud)
或者在Javascript中这样:
/**
* @author: Some Name
* @address: some@email.com
*/
Run Code Online (Sandbox Code Playgroud)
这对于客户端代码来说非常困难,您可以尝试使用DOM库检查元素是否存在,但是总会有办法解决这个问题.
混淆:
可以混淆HTML和JavaScript代码.但是,对于确定的攻击者来说,同样可以对它们进行去混淆.
你可能会发现缩小你的JavaScript和CSS 是值得的,这使得它们更加精简,以使你的页面加载速度更快,使用更少的流量.这确实会产生使代码可读性降低(因此更难以窃取)的副作用,但它仍然不是万无一失的.
托管解决方案:
如果您的站点使用服务器端代码(PHP,ASP,Ruby on Rails等),您可以考虑提供托管服务而不是提供代码.这样,您的客户将无法修改网站的源代码,但您必须开发一个功能强大的控制面板,为他们提供操作软件所需的选项.
许可可能是您最好的选择,您可以在3条款BSD许可下分发代码,该许可要求使用您的代码的任何人保留归属给您.如果他们将其删除,您可以通过法院系统寻求赔偿.
它没有完美......
尝试强制识别所有权的问题是,专门的滥用者将能够从您分发给他们的代码中删除任何给定的属性(根据定义,如果他们有代码,他们可以编辑它).
但:
大多数合法用户都不会打扰.Wordpress,phpBB和Magento等大型项目仅仅依靠归属和许可来保护其所有权.如果您创建一些值得认可的代码,您可能会发现您获得了应得的认可,而不是花费很长时间来尝试与少数能够利用它的用户打交道.